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