时间:2024-04-22 14:34:54
gcc -Q -O2 --help=optimizers
来查看对应的开启优化列表。1. GCC优化选项
如果同时使用多个不同level -O优化选项来进行编译,编译器会根据最后一个-O的level来决定采用那种优化级别。
2. GCC 调试选项
GCC允许您将-g与-O配合使用。GCC开启优化编译选项的结果有时可能会令人惊讶:
GCC允许编译时添加额外的调试信息,以便程序进行调试,大部分情况下,你需要编译选项-g就可以满足调试需求。
如果没有使用其他优化选项,请考虑将-Og与-g一起使用。在完全没有-O选项的情况下,一些编译器收集对调试有用的信息根本不会运行,因此-Og可能会带来更好的调试体验。
和-O一样,如果多个级别的-g选项同时存在,最后的选项会被生效
综上,很多项目的线上版本都是使用”-O2 -g”的编译选项进行编译,以便发生问题的时候容易定位。但这有一个很大的弊端就是目标文件会比不开启调试信息的情况下大很多,所以一般对外发布的软件都是不含有调试信息的release版本,同时也会发布含有调试信息的debug版本,两者的性能是一样的只是debug多了调试信息而已。GCC编译优化和调试选项综上,很多项目的线上版本都是使用”-O2 -g”的编译选项进行编译,以便发生问题的时候容易定位。但这有一个很大的弊端就是目标文件会比不开启调试信息的情况下大很多,所以一般对外发布的软件都是不含有调试信息的release版本,同时也会发布含有调试信息的debug版本,两者的性能是一样的只是debug多了调试信息而已。
GCC编译优化和调试选项