简体   繁体   English

g++:如果在-O2或-O3之前指定-fno-omit-frame-pointer是否有效?

[英]g++: Will -fno-omit-frame-pointer be effective if specified before -O2 or -O3?

We have a complex hierarchical make file system where the CXXFLAGS is appended in several places (several separate makefiles of individual libraries).我们有一个复杂的分层 make 文件系统,其中CXXFLAGS附加在几个地方(各个库的几个单独的 makefile)。

There's one master file that seems to be getting included in every other make file.有一个主文件似乎包含在所有其他 make 文件中。 So I specified the -fno-omit-frame-pointer flag there.所以我在那里指定了-fno-omit-frame-pointer标志。

When I compile, I see the above flag and after that I see -O2 .当我编译时,我看到上面的标志,然后我看到-O2 My question is, if the -O2 flag sets -fomit-frame-pointer , will the latest setting take effect?我的问题是,如果-O2标志设置-fomit-frame-pointer ,最新的设置会生效吗?

With gcc/g++ you can use the -Q --help=optimizers flags to find out the exact set of optimizations that are enabled.使用 gcc/g++,您可以使用-Q --help=optimizers标志来找出启用的确切优化集。

With my version of gcc I get:使用我的 gcc 版本,我得到:

$ gcc -Q --help=optimizers -O2 | fgrep omit-frame-pointer

-fomit-frame-pointer                [enabled]

and

$ gcc -Q --help=optimizers -fno-omit-frame-pointer -O2 | fgrep omit-frame-pointer

-fomit-frame-pointer                [disabled]

So -O2 doesn't seem to overwrite the previous -fno-omit-frame-pointer .所以-O2似乎并没有覆盖之前的-fno-omit-frame-pointer

Anyway check your environment.无论如何检查你的环境。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM