配置你的编译器:构建配置 | C++ 编程指南

构建配置概述

构建配置(也称为构建目标)是一组项目设置,它决定了你的IDE将如何构建你的项目。构建配置通常包括诸如可执行文件的名称、IDE将查找其他代码和库文件的目录、是否保留或剥离调试信息、编译器优化程序的程度等。通常情况下,除非你有特定的原因需要更改某些设置,否则你会希望保持这些设置为默认值。

调试配置与发布配置

当你在IDE中创建一个新项目时,大多数IDE会为你设置两种不同的构建配置:发布配置和调试配置。

调试配置

调试配置旨在帮助你调试程序,通常是你在编写程序时使用的那个。此配置关闭所有优化,并包含调试信息,这会使你的程序变得更大、更慢,但更容易调试。调试配置通常被默认选为活动配置。我们将在后续课程中更多地讨论调试技巧。

发布配置

发布配置旨在在向公众发布程序时使用。这个版本通常针对大小和性能进行优化,并且不包含额外的调试信息。因为发布配置包含了所有优化,所以这种模式也适用于测试你的代码性能(我们将在本教程系列后面向你展示如何操作)。

当使用Visual Studio构建"Hello World"程序时,调试配置产生的可执行文件大小为65KB,而在发布版本中构建的可执行文件大小为12KB。这种差异主要是由于调试构建中保留的额外调试信息所导致的。

尽管你可以创建自己的自定义构建配置,但除非你想要比较使用不同编译器设置构建的两个版本,否则你很少会有理由这么做。

最佳实践

在开发程序时使用调试构建配置。当你准备向他人发布你的可执行文件,或想要测试性能时,使用发布构建配置。

一些IDE(例如Visual Studio)还会为不同的平台创建单独的构建配置。例如,Visual Studio为x86(32位)和x64(64位)平台创建构建配置。

切换构建配置

对于Visual Studio用户

在Visual Studio中,有多种方式可以在调试和发布之间切换。最简单的方法是直接从标准工具栏选项中的解决方案配置下拉菜单中设置你的选择:

Visual Studio 切换构建配置

现在将其设置为调试。 你还可以通过选择构建菜单 > 配置管理器,然后更改活动解决方案配置来访问配置管理器对话框。 在解决方案配置下拉菜单的右侧,Visual Studio还有一个解决方案平台下拉菜单,允许你在x86(32位)和x64(64位)平台之间切换。

对于Code::Blocks用户

在Code::Blocks中,你应该能在编译器工具栏中看到一个名为构建目标的项目:

Code::Blocks 切换构建配置 现在将其设置为调试。

对于gcc和Clang用户

为调试构建添加-ggdb到命令行,为发布构建添加-O2 -DNDEBUG。现在使用调试构建选项。 对于GCC和Clang,-O#选项用于控制优化设置。最常见的选项如下:

-O0是调试构建推荐的优化级别,因为它禁用了优化。这是默认设置。

-O2是发布构建推荐的优化级别,因为它应用了对所有程序都有益的优化。

-O3增加了额外的优化,这些优化可能比-O2表现得更好或更差,这取决于特定程序。一旦你的程序编写完成,你可以尝试使用-O3而不是-O2来编译你的发布构建,并测量看哪个更快。

有关优化选项的信息,请参见 https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

对于VS Code用户

当你第一次运行你的程序时,会在资源管理器面板中的.vscode文件夹下创建一个名为tasks.json的新文件。打开tasks.json文件,找到"args",然后在该部分中找到"${file}“行。 在”${file}“行上方,添加一个新行,包含以下命令(每行一个)进行调试: “-ggdb”, 在”${file}“行上方,添加新行,包含以下命令(每行一个)用于发布构建: “-O2”, “-DNDEBUG”,

修改构建配置

在接下来的几课中,我们将向你展示如何调整构建配置中的一些设置。在更改项目设置时,我们建议在所有构建配置中进行更改。 这将有助于防止对错误的构建配置进行更改,并确保如果你后来切换构建配置,更改仍然适用。

提示

每当你更新项目设置时,为所有构建配置进行更改(除非由于某些原因不适用)。

关注公众号,回复"cpp-tutorial"

可领取价值199元的C++学习资料

公众号二维码

扫描上方二维码或搜索"cpp-tutorial"