gpt4 book ai didi

performance - g++ 编译选项 -g 调试和 -O 优化

转载 作者:行者123 更新时间:2023-12-04 00:56:46 25 4
gpt4 key购买 nike

我对 g++ 编译器不太熟悉,尤其是选项,例如 -s、-g 和 -O。

首先,请问这些选项什么时候生效?在编译或链接阶段?我通常会在两个阶段都提供我需要的所有选项。

其次,是否有 -g1、-g2、-g3 选项?我知道 -g 在可执行文件中添加调试信息。其他人有何不同?

第三,-s 有什么作用? -s、-g 和 -O3 可以一起使用吗?我的目标是使可执行文件 1) 快速运行,并且 2) 尽可能小。你有什么建议?

最佳答案

你不应该关注选项,而应该关注你想要实现的目标。我对您想要实现的目标的一般评论:

  • 通常在快速和小型之间进行权衡。 -O3 表示快。 Os 意味着在不增加大小的情况下尽可能快。
  • 您可以将调试信息 (-g) 与优化 (-O3) 结合使用,但有时信息很差,因为源代码和结果代码之间没有直接联系
  • 如果您从可执行文件中去除调试信息 (-s),您将无法轻松调试该可执行文件(您可以单独保存调试信息,但这是另一回事)

  • 始终使用手册(通过在 shell 中键入“man g++”或通过在 Internet 上搜索“man g++”来访问)并搜索选项,如果您对它的作用感兴趣的话。如果您有更高级别的问题,那么您可以提问(例如手册中解释了 -g1 和 -g3 之间的区别)

    建议:使用-O3。如果您不断开发程序并使用 GDB 作为调试器,请使用:-ggdb -g3。

    编辑:关于何时应用它们:通常你不用担心它是什么阶段,你只需发送选项,g++ 会处理它们。当你想要更具体的东西时,你可以检查更多。

    关于performance - g++ 编译选项 -g 调试和 -O 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386467/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com