Boost C++ Libraries

PrevUpHomeNext

配置

在启动时,Boost.Build 会搜索并读取两个配置文件:site-config.jamuser-config.jam。第一个文件通常由系统管理员安装和维护,第二个文件供用户修改。您可以编辑 Boost.Build 安装的顶级目录中的文件,或者在您的主目录中创建副本并编辑副本。下表说明了这两个文件在何处被搜索。

表 3.1. 配置文件搜索路径

  site-config.jam user-config.jam
Linux

/etc

$HOME

$BOOST_BUILD_PATH

$HOME

$BOOST_BUILD_PATH

Windows

%SystemRoot%

%HOMEDRIVE%%HOMEPATH%

%HOME%

%BOOST_BUILD_PATH%

%HOMEDRIVE%%HOMEPATH%

%HOME%

%BOOST_BUILD_PATH%


提示

您可以使用 --debug-configuration 选项来查找实际加载的配置文件。

通常,user-config.jam 只定义可用的编译器和其他工具(有关更高级的用法,请参见“site-config.jam 中的目标”部分)。工具使用以下语法进行配置

using tool-name : ... ;

using 规则被赋予工具的名称,并将使该工具可用于 Boost.Build。例如,

using gcc ;

将使 GCC 编译器可用。

所有支持的工具都记录在“内置工具”部分中,包括它们使用的特定选项。下面是一些适用于大多数 C++ 编译器的一般说明。

对于 Boost.Build 开箱即用支持的所有 C++ 编译器工具集,using 的参数列表都相同:toolset-nameversioninvocation-commandoptions

如果您只有一个编译器,并且编译器可执行文件

它可以通过简单地

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 的所有标准编译器工具集都接受四个选项 cflagscxxflagscompileflagslinkflags 作为 options,指定将始终传递给相应工具的标志。cflags 特性的值将直接传递给 C 编译器,cxxflags 特性的值将直接传递给 C++ 编译器,compileflags 特性的值将传递给两者。例如,要配置一个 gcc 工具集使其始终生成 64 位代码,您可以编写

        using gcc : 3.4 : : <compileflags>-m64 <linkflags>-m64 ;

警告

尽管用于指定工具集选项的语法与用于在 Jamfiles 中指定需求的语法非常相似,但工具集选项与特性并不相同。不要尝试在工具集初始化中指定特性值。


PrevUpHomeNext