构建配置(也称为构建目标)是项目设置的集合,它决定了你的 IDE 将如何构建你的项目。构建配置通常包括可执行文件的名称、IDE 将在哪些目录中查找其他代码和库文件、是否保留或剥离调试信息、编译器对程序进行多少优化等等。通常,除非你有特定理由更改某些内容,否则你会希望将这些设置保留为默认值。
当你在 IDE 中创建新项目时,大多数 IDE 会为你设置两种不同的构建配置:发布配置和调试配置。
调试配置旨在帮助你调试程序,通常是你在编写程序时会使用的配置。此配置会关闭所有优化,并包含调试信息,这会使你的程序更大、更慢,但更容易调试。调试配置通常默认选择为活动配置。我们将在后面的课程中详细讨论调试技术。
发布配置旨在用于向公众发布你的程序。此版本通常针对大小和性能进行优化,并且不包含额外的调试信息。由于发布配置包含所有优化,此模式也适用于测试代码的性能(我们将在本教程系列后面向你展示如何操作)。
当使用 Visual Studio 构建“Hello World”程序(来自课程0.7 -- 编译你的第一个程序)时,在调试配置中生成的可执行文件为 65KB,而在发布版本中生成的可执行文件为 12KB。这种差异主要是由于调试构建中保留了额外的调试信息。
尽管你可以创建自己的自定义构建配置,但你很少有理由这样做,除非你想比较使用不同编译器设置创建的两个构建。
最佳实践
在开发程序时使用调试构建配置。当你准备好将可执行文件发布给其他人,或想测试性能时,使用发布构建配置。
一些 IDE(例如 Visual Studio)还会为不同的平台创建单独的构建配置。例如,Visual Studio 为 x86(32 位)和 x64(64 位)平台都创建了构建配置。
切换构建配置
对于 Visual Studio 用户
在 Visual Studio 中,有多种方法可以在调试和发布之间切换。最简单的方法是直接从标准工具栏选项中的解决方案配置下拉菜单中设置你的选择

暂时将其设置为调试。
你也可以通过选择构建菜单 > 配置管理器来访问配置管理器对话框,并更改活动解决方案配置。
在解决方案配置下拉菜单的右侧,Visual Studio 还有一个解决方案平台下拉菜单,允许你在 x86(32 位)和 x64(64 位)平台之间切换。
对于 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",
修改构建配置
在接下来的几节课中,我们将向你展示如何调整构建配置中的一些设置。无论何时更改项目设置,我们都建议在所有构建配置中进行更改。
这将有助于防止将更改应用于错误的构建配置,并确保如果你稍后切换构建配置,更改仍会生效。
提示
无论何时更新项目设置,请为所有构建配置进行更改(除非出于某种原因不合适)。