可执行文件的Boost.Build和<link />功能

时间:2012-09-29 15:14:02

标签: boost boost-build boost-jam

当我在构建可执行文件时将<link>static功能传递给需求部分时,它究竟意味着什么?

exe main
       : main.cpp
         /libs//my_library
       : <library>/boost//thread
         <link>static
       ;

这是否意味着使用静态链接构建/libs//my_library<library>/boost//thread

如果我的目标/libs//my_library设置了<link>static要求(仅使用此功能构建),如果我省略了对所有依赖的目标的<link>static要求,是否会出现错误这个库(就像上面那个)?

1 个答案:

答案 0 :(得分:2)

  

当我将<link>static功能传递给时,它究竟意味着什么   构建可执行文件时的需求部分?

这意味着静态地构建(并链接到)依赖库。

exe main
       : main.cpp
         /libs//my_library
       : <library>/boost//thread
         <link>static
       ;
     

这是否意味着/libs//my_library<library>/boost//thread   必须用静态链接构建?

  

如果我的目标/libs//my_library设置了<link>static要求(是   仅使用此功能构建),如果我,会出现错误   省略对所有依赖的目标的<link>static要求   这个库(就像上面那个)?

不,那没关系。如果您的库需要<link>static,那么无论如何都会静态构建它,并且仅仅为了这个库而没有必要在依赖目标中使用<link>static。< / p>

请注意,可以请求静态构建特定的依赖库,而不会影响其他依赖库,如下所示:

exe e : /libs//mylib/<link>static /libs//otherlib /libs//someotherlib

上述<link>static不会影响otherlibsomeotherlib,它仅适用于mylib