哪些标志由-O启用?

时间:2015-05-06 22:42:47

标签: gcc compiler-flags

使用-O标志编译时,我的应用程序存在一些可移植性问题。 我想找出哪个标志确切地触发了问题,但我仍然没有成功.. 我使用了

中的所有标志
gcc -c -Q -O --help=optimizers

但我还是无法重现这个问题。 -O是否可以启用其他标志?

顺便说一句,我得到的错误如下:

[Hein@Heinrich]$ ./parscons
./parscons: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./parscons)
./parscons: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./parscons)

1 个答案:

答案 0 :(得分:2)

gcc -O -fauto-inc-dec -fbranch-count-reg -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fdce -fdefer-pop -fdelayed-branch -fdse -fforward-propagate -fguess-branch-probability -fif-conversion2 -fif-conversion -finline-functions-called-once -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fmove-loop-invariants -fshrink-wrap -fsplit-wide-types -ftree-bit-ccp -ftree-ccp -fssa-phiopt -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre -ftree-phiprop -ftree-sink -ftree-slsr -ftree-sra -ftree-pta -ftree-ter -funit-at-a-time 启用的标记列表可在此处找到 - Optimize-Options

来自doc:

  

-O   -O1优化。优化编译需要更多时间,并且大型函数需要更多内存。使用-O,编译器会尝试   减少代码大小和执行时间,而不执行任何操作   优化需要大量的编译时间。

     

-O打开以下优化标志:

php.ini
     

-O也会在机器上打开-fomit-frame-pointer,这样做不会干扰调试。