Boost C++ Libraries

PrevUpHomeNext

预构建目标

要链接到 Jamfile 中没有给出构建指令的库,您需要创建一个带有适当 file 属性的 lib 目标。目标替代可以用来将多个库文件与单个概念目标关联起来。例如

# util/lib2/Jamfile
lib lib2
    :
    : <file>lib2_release.a <variant>release
    ;

lib lib2
    :
    : <file>lib2_debug.a <variant>debug
    ;

此示例为 lib2 定义了两种替代方案,并为每种方案命名了预构建文件。自然,没有源代码。而是使用 <file> 功能来指定文件名。

一旦预构建目标被声明,它就可以像任何其他目标一样使用

exe app : app.cpp ../util/lib2//lib2 ;

与任何目标一样,选择的替代方案取决于从 lib2 的依赖项传播的属性。如果我们构建了 app 的发行版和调试版,则将分别使用 lib2_release.alib2_debug.a 进行链接。

系统库 - 那些通过搜索一些预定路径由工具集自动找到的库 - 应该像普通库一样被声明

lib pythonlib : : <name>python22 ;

我们再次不指定任何源代码,但给出了一个应该传递给编译器的 name。如果使用 gcc 工具集将可执行目标链接到 pythonlib,则命令行中将出现 -lpython22(其他编译器可能使用不同的选项)。

我们也可以指定工具集应该在哪里查找库

lib pythonlib : : <name>python22 <search>/opt/lib ;

当然,目标替代可以像往常一样使用

lib pythonlib : : <name>python22 <variant>release ;
lib pythonlib : : <name>python22_d <variant>debug ;

预构建目标的更高级用法在 名为“Targets in site-config.jam”的部分 中描述。


PrevUpHomeNext