比如我只需要-fdefer-pop选项,编译参数写成 -O0 -fdefer-pop 是否正确?
试验发现只加一部分选项,完全不行,没有任何作用
有什么办法
求大神指导
6 个解决方案
#1
把-O0去掉?
#2
嗯,试过了,把-O0去掉也不行
问一下,GCC的选项之间有先后顺序吗?
问一下,GCC的选项之间有先后顺序吗?
#3
Any optimization can be enabled outside of any level simply by specifying its name with the -f prefix, as:
gcc -fdefer-pop -o test test.c
We also could enable level 1 optimization and then disable any particular optimization using the -fno- prefix, like this:
gcc -O1 -fno-defer-pop -o test test.c
我按照上边的方法试,发现完全不行,还有其他人做过类似的试验吗?
gcc -fdefer-pop -o test test.c
We also could enable level 1 optimization and then disable any particular optimization using the -fno- prefix, like this:
gcc -O1 -fno-defer-pop -o test test.c
我按照上边的方法试,发现完全不行,还有其他人做过类似的试验吗?
#4
所以你说的不行是怎么个不行法?
#5
我看了一下gcc 5.1的help,并没有-fdefer-pop这一选项,你可以在命令行gcc --help=C++看看有没有。
#6
是这样的,我用的编译器是基于GCC的一个交叉编译器,使用-O1时发现很多地方优化过度,所以我想挑一下,把导致出问题的优化选项去掉
我用xxx_gcc -Q -O0 --help-optimizers和xxx_gcc -Q -O1 --help-optimizers找出-O1时打开的优化选项,然后在编译选项里加进去,发现编译生成的memory和-O0时一模一样,30多个全加了,也没有变化
猜测是该编译器不支持这种做法
我用xxx_gcc -Q -O0 --help-optimizers和xxx_gcc -Q -O1 --help-optimizers找出-O1时打开的优化选项,然后在编译选项里加进去,发现编译生成的memory和-O0时一模一样,30多个全加了,也没有变化
猜测是该编译器不支持这种做法
#1
把-O0去掉?
#2
嗯,试过了,把-O0去掉也不行
问一下,GCC的选项之间有先后顺序吗?
问一下,GCC的选项之间有先后顺序吗?
#3
Any optimization can be enabled outside of any level simply by specifying its name with the -f prefix, as:
gcc -fdefer-pop -o test test.c
We also could enable level 1 optimization and then disable any particular optimization using the -fno- prefix, like this:
gcc -O1 -fno-defer-pop -o test test.c
我按照上边的方法试,发现完全不行,还有其他人做过类似的试验吗?
gcc -fdefer-pop -o test test.c
We also could enable level 1 optimization and then disable any particular optimization using the -fno- prefix, like this:
gcc -O1 -fno-defer-pop -o test test.c
我按照上边的方法试,发现完全不行,还有其他人做过类似的试验吗?
#4
所以你说的不行是怎么个不行法?
#5
我看了一下gcc 5.1的help,并没有-fdefer-pop这一选项,你可以在命令行gcc --help=C++看看有没有。
#6
是这样的,我用的编译器是基于GCC的一个交叉编译器,使用-O1时发现很多地方优化过度,所以我想挑一下,把导致出问题的优化选项去掉
我用xxx_gcc -Q -O0 --help-optimizers和xxx_gcc -Q -O1 --help-optimizers找出-O1时打开的优化选项,然后在编译选项里加进去,发现编译生成的memory和-O0时一模一样,30多个全加了,也没有变化
猜测是该编译器不支持这种做法
我用xxx_gcc -Q -O0 --help-optimizers和xxx_gcc -Q -O1 --help-optimizers找出-O1时打开的优化选项,然后在编译选项里加进去,发现编译生成的memory和-O0时一模一样,30多个全加了,也没有变化
猜测是该编译器不支持这种做法