Boost C++ Libraries

PrevUpHomeNext

调用

示例
选项
属性
目标

要调用 Boost.Build,在命令行中键入 b2。接受三种类型的命令行标记,可以按任意顺序排列

选项

选项以一个或两个连字符开头。下面列出了标准选项,每个项目都可以添加其他选项

属性

属性指定要构建的内容的详细信息(例如调试或发布版本)。从语法上讲,所有包含等号的命令行标记都被视为指定属性。在最简单的形式中,属性看起来像 特性=

目标

所有既不是选项也不是属性的标记都指定要构建的目标。可用的目标完全取决于您正在构建的项目。

示例

要使用默认属性构建当前目录中 Jamfile 中定义的所有目标,请运行

b2

要构建特定目标,请在命令行中指定它们

b2 lib1 subproject//lib2

要请求某个属性的特定值,请将 属性= 添加到命令行中

b2 toolset=gcc variant=debug optimization=space

选项

Boost.Build 识别以下命令行选项。

--help

调用联机帮助系统。这将打印有关如何使用带有其他 --help* 选项的帮助系统的一般信息。

--clean

清除当前目录和任何子项目中的所有目标。请注意,与 make 中的 clean 目标不同,您可以将 --clean 与目标名称一起使用以清除特定目标。

--clean-all

清除所有目标,无论它们定义在哪里。特别是,它将清除父 Jamfile 中的目标以及在其他项目根目录下定义的目标。

--build-dir

更改所有正在构建的项目根目录的构建目录。当指定此选项时,所有 Jamroot 文件都必须声明一个项目名称。项目根目录的构建目录将通过连接 --build-dir 选项的值、Jamroot 中指定的项目名称以及 Jamroot 中指定的构建目录(如果未指定,则为 bin)来计算。

此选项主要在从只读介质构建时有用,此时您无法修改 Jamroot。

--abbreviate-paths

通过缩写每个组件来压缩目标路径。此选项可用于防止路径长度超过文件系统支持的长度。另请参阅 “目标路径”部分

--hash

使用 MD5 哈希压缩目标路径。此选项可用于防止路径长度超过文件系统支持的长度。此选项生成的路径比 --abbreviate-paths 短,但代价是使它们不太容易理解。另请参阅 “目标路径”部分

--version

打印有关 Boost.Build 和 Boost.Jam 版本的信息。

-a

导致所有文件都被重新构建。

-n

不执行命令,只打印它们。

-q

在第一个错误处停止,而不是继续构建不依赖于失败目标的目标。

-j N

并行运行最多 N 个命令。

--debug-configuration

生成有关加载 Boost.Build 和工具集文件的信息。

--debug-building

打印正在构建的目标以及使用的属性。

--debug-generators

生成生成器搜索过程的调试输出。可用于调试自定义生成器。

-d0

禁止所有信息消息。

-d N

启用从 1 到 n 的累积调试级别。值是

  1. 显示为构建目标而采取的操作,因为它们正在执行(默认值)。
  2. 显示“静默”操作并显示所有操作文本,因为它们正在执行。
  3. 显示依赖项分析以及目标/源时间戳/路径。
  4. 显示 shell 调用的参数和时间。
  5. 显示规则调用和变量扩展。
  6. 显示目录/头文件/存档扫描以及绑定到目标的尝试。
  7. 显示变量设置。
  8. 显示变量获取、变量扩展和“if”表达式的求值。
  9. 显示变量操作、扫描程序标记和内存使用情况。
  10. 显示规则的概要信息,包括时间和内存。
  11. 显示 Jamfile 的解析进度。
  12. 显示目标依赖项图。
  13. 显示更改目标状态(命运)。

-d +N

启用调试级别 N

-o 文件

将更新操作写入指定的文件而不是运行它们。

-s 变量=

将变量 变量 设置为 jam 语言解释器的全局范围内的 ,覆盖从环境导入的变量。

属性

在最简单的情况下,构建使用一组属性执行,您可以在命令行上使用表单 特性= 中的元素指定这些属性。特性的完整列表可以在 “内置特性”部分 中找到。最常见的特性总结如下。

表 3.2. 

特性 允许的值 注释
variant debug,release  
link shared,static 确定 Boost.Build 是否创建共享库或静态库
threading single,multi 导致生成的二进制文件是线程安全的。这需要源代码本身提供适当的支持。
address-model 32,64 显式请求 32 位或 64 位代码生成。这通常需要您的编译器配置正确。如有问题,请参阅 “C++ 编译器”部分 和您的编译器文档。
toolset (取决于配置) 要使用的 C++ 编译器。有关详细信息,请参阅 “C++ 编译器”部分
include (任意字符串) C 和 C++ 编译器的其他包含路径。
define (任意字符串) C 和 C++ 编译器的其他宏定义。字符串应为 SYMBOLSYMBOL=VALUE
cxxflags (任意字符串) 传递给 C++ 编译器的自定义选项。
cflags (任意字符串) 传递给 C 编译器的自定义选项。
linkflags (任意字符串) 传递给 C++ 链接器的自定义选项。
runtime-link shared,static 确定是否应使用 C 和 C++ 运行时的共享版本或静态版本。

如果您有多个给定 C++ 工具集的版本(例如,在 user-config.jam 中配置或自动检测,就像在 msvc 中发生的那样),您可以通过将 工具集-版本 作为 toolset 特性的值传递来请求特定版本,例如 toolset=msvc-8.0

如果某个特性有一组固定的值,则可以在命令行上多次指定它。在这种情况下,所有内容都将构建多次——每个指定的特性值构建一次。例如,如果您使用

b2 link=static link=shared threading=single threading=multi

那么将执行总共 4 次构建。为方便起见,您可以使用逗号分隔值,而不是在单独的命令行元素中指定特性的所有请求值,例如

b2 link=static,shared threading=single,multi

逗号只有在特性有一组固定值时才具有此特殊含义,因此

b2 include=static,shared

不会被特殊处理。

目标

所有既不是选项也不是属性的命令行元素都是要构建的目标的名称。请参阅 “目标标识符和引用”部分。如果未指定目标,则构建当前目录中的项目。


PrevUpHomeNext