【发布时间】:2019-02-26 23:59:56
【问题描述】:
我已阅读 gcc documentation 以获得优化选项。他们没有例子。
一个乏味的方法是使用godbolt 并尝试这么多选项,看看哪个选项适用于特定的优化标志。
我已经写了以下琐碎的代码:
#include <cmath>
double calculate(double x)
{
int y=x+sin(x);
return exp(x)+exp(-x);
}
int main(int argc,char *argv[])
{
return ceil(calculate(argc));
}
我用它编译了它
g++ -Q -v -O3 main.cpp
它为我打印所有启用的优化标志,而不是使用的选项标志。我还需要知道特定函数的优化标志,不包括用于库的优化。
我如何获得用于编译calculate 函数的优化标志列表?
【问题讨论】:
-
为什么不写一个make文件,用专门的定义为优化和非优化定义不同的构建目标呢?例如,ENABLE_OPTIMIZATION。
-
@ravin.wang, 你如何只为单个函数指定优化标志?
-
大多数编译器,如 gcc,不为单个函数指定优化。通常,整个项目都会以所需的优化级别进行编译。
-
@atrak 请看delorie.com/gnu/docs/gcc/cpp_22.html,您可以使用
__OPTIMIZE__来检查是否启用了编译器优化。 -
没有这样的选项。 a) 很难实施 b) 没用。如果你有一个特定的问题要解决,你应该问一下,我假设你错误地认为这个选项会帮助你。
标签: c++ c gcc optimization g++