【问题标题】:Can Boost Log be built as a .dll/.so in a static Boost build?Boost Log 可以在静态 Boost 构建中构建为 .dll/.so 吗?
【发布时间】:2014-03-02 02:08:15
【问题描述】:

是否可以将 Boost Log 构建为动态库 (.dll/.so),但在静态 Boost 构建中这样做?我希望所有其他 Boost 库都是静态的,并且只有 Boost Log 作为 .dll(因为多个 .dll 在同一个应用程序中使用它)。

是否所有 Boost 库都需要动态才能获取 Boost Log .dll?我尝试将 define=BOOST_LOG_DYN_LINK 添加到我的 bjam 命令行,但无济于事:

bjam --toolset=msvc-10.0 address-model=64 variant=release,debug link=static threading=multi runtime-link=static define=BOOST_LOG_DYN_LINK

【问题讨论】:

    标签: c++ dynamic boost static boost-log


    【解决方案1】:

    您可以通过使用--with-<library> 开关仅指定要构建的库来缩小构建范围,例如,

    ./bjam link=shared --with-log ...

    【讨论】:

    • link=shared --with-log link=static threading=multi runtime-link=static: 错误:link=shared 和 runtime-link=static 是不允许的。这样的属性组合要么不可能,要么太危险而无法使用
    • @RazvanCojocaru 删除 runtime-link-static 当然,它与 link=shared 冲突 - 您表示要为动态链接构建 boost。
    • 不,我希望所有 Boost 库都是静态的(具有静态运行时),除了 Boost Log,它应该是动态的,但仍使用静态运行时,以及静态 Boost 库(因为它将在一堆动态加载的 DLL 和加载它们的可执行文件中使用)。
    • 由于从技术上讲,您的答案是 bjam 可以做到的最好的,而且我的问题似乎不够精确,我会将其标记为答案以供将来参考。谢谢。
    猜你喜欢
    • 2010-10-04
    • 2020-07-21
    • 1970-01-01
    • 2016-03-15
    • 2011-11-04
    • 2022-10-21
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多