【问题标题】:Boost.Build and <link> feature for executables用于可执行文件的 Boost.Build 和 <link> 功能
【发布时间】:2012-09-29 15:14:02
【问题描述】:

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

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

这是否意味着/libs//my_library&lt;library&gt;/boost//thread 必须 使用静态链接构建?

如果我的目标 /libs//my_library 具有 &lt;link&gt;static 要求集(仅使用此功能构建),如果我省略了依赖于此库的所有目标的 &lt;link&gt;static 要求(就像以上)?

【问题讨论】:

    标签: boost boost-build bjam


    【解决方案1】:

    当我将&lt;link&gt;static 功能传递给 构建可执行文件时的需求部分?

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

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

    这是否意味着/libs//my_library&lt;library&gt;/boost//thread 必须用静态链接构建?

    是的。

    如果我的目标 /libs//my_library 具有 &lt;link&gt;static 要求集(是 仅使用此功能构建),如果我会引发错误 省略所有依赖于的目标的&lt;link&gt;static 要求 这个库(就像上面的那个)?

    不,没关系。如果您的库有 &lt;link&gt;static 作为要求,那么无论如何它都会静态构建,并且没有必要仅仅为了这个库而在依赖目标中包含 &lt;link&gt;static

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

    exe e : /libs//mylib/&lt;link&gt;static /libs//otherlib /libs//someotherlib

    上面的这个&lt;link&gt;static不影响otherlibsomeotherlib,它只与mylib有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      相关资源
      最近更新 更多