我对 g++ 编译器不太熟悉,尤其是选项,例如 -s、-g 和 -O。
首先,请问这些选项什么时候生效?在编译或链接阶段?我通常把我需要的所有选项都放在两个阶段。
其次,是否有 -g1、-g2、-g3 选项?我知道 -g 在可执行文件中添加调试信息。其他人有何不同?
第三,-s有什么作用?-s、-g 和 -O3 可以一起工作吗?我的目标是使可执行文件 1)快速运行,2)尽可能小。你有什么建议?
我对 g++ 编译器不太熟悉,尤其是选项,例如 -s、-g 和 -O。
首先,请问这些选项什么时候生效?在编译或链接阶段?我通常把我需要的所有选项都放在两个阶段。
其次,是否有 -g1、-g2、-g3 选项?我知道 -g 在可执行文件中添加调试信息。其他人有何不同?
第三,-s有什么作用?-s、-g 和 -O3 可以一起工作吗?我的目标是使可执行文件 1)快速运行,2)尽可能小。你有什么建议?
您不应该专注于选项,而应该专注于您想要实现的目标。我对您想要实现的目标的一般评论:
始终使用手册(通过在 shell 中键入“man g++”或通过在互联网上搜索“man g++”来访问)并搜索选项,如果您对它的作用感兴趣的话。如果你有更高级别的问题,那么你可以问(例如手册中解释了 -g1 和 -g3 之间的区别)
作为建议:使用-O3。如果您不断开发程序并使用 GDB 作为调试器,请使用:-ggdb -g3。
编辑:关于何时应用它们:通常你不用担心它是什么阶段,你只需发送选项,g++ 会处理它们。当你想要更具体的东西时,你可以检查更多。