2.3 使用构建配置
2 分钟阅读
原文链接: https://docs.swift.org/latest/documentation/packagemanagerdocs/usingbuildconfigurations/
2.3 使用构建配置
控制应用或包的构建配置。
概述
包管理器支持两种通用的构建配置:Debug(默认)和 Release。
Debug
默认情况下,运行 swift build 会使用调试配置构建包;你也可以显式使用 swift build -c debug。包管理器把构建产物放在 .build 文件夹下名为 debug 的目录中。以调试配置构建时,Swift 目标使用下列 Swift 编译器标志:
-Onone:不做任何优化进行编译。-g:生成调试信息。-enable-testing:启用 Swift 编译器的可测试性特性。
调试配置下的 C 语言目标使用下列标志:
-O0:不做任何优化进行编译。-g:生成调试信息。
Release
要以发布模式构建,请输入 swift build -c release。包管理器把构建产物放在 .build 文件夹下名为 release 的目录中。以发布配置构建时,Swift 目标使用下列 Swift 编译器标志:
-O:带优化进行编译。-whole-module-optimization:按模块整体优化输入文件,而不是逐个优化。
发布配置下的 C 语言目标使用下列标志:
-O2:带优化进行编译。
额外的编译标志
你可以通过三种不同方式向 C、C++ 或 Swift 编译器传递额外的标志:
传给这些工具的命令行标志:像
-Xcc(用于 C 编译器)或-Xswiftc(用于 Swift 编译器)这样的标志,会为清单中的所有目标传递相关标志。清单中的目标专属标志:使用
cSettings、swiftSettings之类的选项,可以细致地控制特定目标的编译标志。目标 JSON 文件:当你已经有一套可用于所有目标的命令行标志时,把它们收集到一个 JSON 文件中,并通过
--destination example.json用extra-cc-flags和extra-swiftc-flags传入。
一个区别是:在命令行通过 -Xcc 传入的 C 标志,或者通过清单的 cSettings 传入的 C 标志,出于便利也会提供给 Swift 编译器工具,而 extra-cc-flags 则不会。