使用-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)
答案 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,这样做不会干扰调试。