为了提供一些背景,我在这里讨论的是使用g++编译C++代码。 我可以理解在生产构建中包含-g标志对于维护来说会很方便:如果程序意外崩溃,它将更容易调试。 我的问题是,除了增加可执行文件的大小之外,包含-g标志是否会以其他方式影响输出可执行文件?它是否会使代码变慢(例如关闭某些优化)? 据我所了解,它不应该会有影响(文档只提到包括调试符号),但我不确定。
我的问题是,除了增加可执行文件的大小之外,包含-g标志是否会以其他方式影响输出可执行文件?不会,完全可以生成带有调试信息的优化二进制文件,这不会以任何方式影响正常代码(尽管该信息可能不太有用,因为变量有时不需要存在,内联函数更难调试等)。Debian发行版使用调试信息构建软件包,稍后将其剥离(有时拆分为“调试软件包”)。但请注意,大小增加可能相当大。