目前我正在使用GNU C++ - 编译器和-Os优化选项进行一些实验,以实现最小的代码大小.我使用以下命令在-Os检查了启用的编译器标志:
g++ -c -Q -Os --help=optimizers | grep "enabled"
Run Code Online (Sandbox Code Playgroud)
我得到了这个启用选项的列表:
-faggressive-loop-optimizations [enabled]
-falign-functions [enabled]
-falign-jumps [enabled]
-falign-labels [enabled]
-falign-loops [enabled]
-fasynchronous-unwind-tables [enabled]
...
Run Code Online (Sandbox Code Playgroud)
这看起来有点奇怪,因为我也查了一下,应该在-Os启用哪些标志,这里和-Os部分下面写的是falign-应该禁用所有选项以进行代码最小化.
问:这是一个错误还是我在这里做错了什么?看完falign-标志之后的原因我真的认为应该在-Os中禁用它们!
我的gcc版本是4.9.2,我正在使用Arch-Linux.
已经感谢帮助:)