0-9 配置编译器:构建配置

构建配置build configuration (也称为构建目标build target)是一组项目设置,用于确定IDE如何构建您的项目。构建配置通常包含以下内容:可执行文件命名规则、IDE搜索其他代码和库文件的目录路径、是否保留或移除调试信息、编译器对程序的优化程度等。除非有特殊需求,通常建议保留这些设置的默认值。

在IDE创建新项目时,多数集成环境会自动配置两种构建配置:发布配置与调试配置。

调试配置debug configuration专为程序调试设计,通常在编写程序时使用。该配置会关闭所有优化功能并保留调试信息,虽然会导致程序体积增大、运行变慢,但能显著提升调试效率。默认情况下,调试配置会被选为活动配置。调试技术将在后续课程中深入探讨。

发布配置release configuration用于程序公开发布时。该版本通常针对体积和性能进行优化,且不含额外调试信息。由于发布配置包含所有优化选项,此模式也适用于测试代码性能(教程系列后续将展示具体方法)。

当使用Visual Studio构建Hello World程序(来自第0.7课——编译你的第一个程序)时,调试配置生成的可执行文件为65KB,而发布版本构建的可执行文件仅为12KB。这种差异主要源于调试构建中保留的额外调试信息。

虽然你可以创建自定义构建配置,但除非需要比较不同编译器设置下的构建结果,否则通常没有必要这样做。

最佳实践:
在开发程序时请使用调试构建设置。当您准备向他人发布可执行文件或需要测试性能时,请使用发布构建设置。

某些集成开发环境(如Visual Studio)还会为不同平台创建独立的构建设置。例如,Visual Studio会分别创建x86(32位)和x64(64位)平台的构建设置。


在构建配置之间切换

对于 Visual Studio 用户:
在 Visual Studio 中,有多种方法可在调试和发布配置之间切换。最简便的方式是直接通过标准工具栏选项中的“解决方案配置”下拉菜单进行选择:
image
暂时将其设置为调试模式。
您也可以通过选择“构建”菜单 > “配置管理器”来访问配置管理器对话框,并更改当前活动的解决方案配置。
在“解决方案配置”下拉菜单的右侧,Visual Studio还提供了一个“解决方案平台”下拉菜单,可用于在x86(32位)和x64(64位)平台之间切换。

对于Code::Blocks 用户:
在 Code::Blocks 中,您应在编译器工具栏中看到名为“Build Target”的选项:
image
目前请将其设置为“Debug”。

对于 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 的新文件。请打开该文件,定位到 “args” 部分,然后在该部分内找到 “${file}” 这行代码。
调试时,在“${file}”行上方添加新行,每行包含以下命令(每行一条):
“-ggdb”,
发布构建时,在“${file}”行上方添加新行,每行包含以下命令(每行一条):
“-O2”,
“-DNDEBUG”,


修改构建配置

在接下来的几节课中,我们将向您展示如何调整构建配置中的某些设置。每次更改项目设置时,我们建议在所有构建配置中进行修改。

此举可避免误修改错误的配置,并确保后续切换配置时变更仍能生效。

提示
更新项目设置时,请务必在所有构建配置中同步修改(除非存在特殊限制)。

posted @ 2026-02-05 09:59  游翔  阅读(0)  评论(0)    收藏  举报