在启动时,Boost.Build 会搜索并读取两个配置文件:site-config.jam
和 user-config.jam
。第一个文件通常由系统管理员安装和维护,第二个文件供用户修改。您可以编辑 Boost.Build 安装的顶级目录中的文件,或者在您的主目录中创建副本并编辑副本。下表说明了这两个文件在何处被搜索。
表 3.1. 配置文件搜索路径
site-config.jam | user-config.jam | |
---|---|---|
Linux |
|
|
Windows |
|
|
您可以使用 --debug-configuration 选项来查找实际加载的配置文件。
通常,user-config.jam
只定义可用的编译器和其他工具(有关更高级的用法,请参见“site-config.jam 中的目标”部分)。工具使用以下语法进行配置
using tool-name
: ... ;
using
规则被赋予工具的名称,并将使该工具可用于 Boost.Build。例如,
using gcc ;
将使 GCC 编译器可用。
所有支持的工具都记录在“内置工具”部分中,包括它们使用的特定选项。下面是一些适用于大多数 C++ 编译器的一般说明。
对于 Boost.Build 开箱即用支持的所有 C++ 编译器工具集,using
的参数列表都相同:toolset-name
、version
、invocation-command
和 options
。
如果您只有一个编译器,并且编译器可执行文件
具有其“常用名称”并且在 PATH
中,或者
安装在标准的“安装目录”中,或者
可以使用像 Windows 注册表这样的全局系统找到。
它可以通过简单地
using tool-name
;
如果编译器安装在自定义目录中,则应提供调用编译器的命令,例如
using gcc : : g++-3.2 ; using msvc : : "Z:/Programs/Microsoft Visual Studio/vc98/bin/cl" ;
一些 Boost.Build 工具集将使用该路径执行在调用编译器之前所需的额外操作,例如调用供应商提供的脚本以设置其所需的環境变量。当 C 和 C++ 的编译器可执行文件不同时,必须指定 C++ 编译器可执行文件的路径。该命令可以是操作系统允许的任何命令。例如
using msvc : : echo Compiling && foo/bar/baz/cl ;
将起作用。
要配置工具集的多个版本,只需多次调用 using
规则即可
using gcc : 3.3 ; using gcc : 3.4 : g++-3.4 ; using gcc : 3.2 : g++-3.2 ;
请注意,在第一次调用 using
时,将使用在 PATH
中找到的编译器,无需显式指定命令。
许多工具集都有一个 options
参数来微调配置。Boost.Build 的所有标准编译器工具集都接受四个选项 cflags
、cxxflags
、compileflags
和 linkflags
作为 options
,指定将始终传递给相应工具的标志。cflags
特性的值将直接传递给 C 编译器,cxxflags
特性的值将直接传递给 C++ 编译器,compileflags
特性的值将传递给两者。例如,要配置一个 gcc 工具集使其始终生成 64 位代码,您可以编写
using gcc : 3.4 : : <compileflags>-m64 <linkflags>-m64 ;
尽管用于指定工具集选项的语法与用于在 Jamfiles 中指定需求的语法非常相似,但工具集选项与特性并不相同。不要尝试在工具集初始化中指定特性值。