【问题标题】:Boost libs building - difference between runtime-link and link options提升库构建 - 运行时链接和链接选项之间的区别
【发布时间】:2011-11-22 10:18:10
【问题描述】:

我正在尝试使用 MSVC(VS 2010)在 Windows 7 中构建 boost 库。

我在 bjam 命令行选项中遇到了 runtime-link 和 link 选项。我想知道它们是如何使用的,它们之间的确切区别是什么。

我已经使用这个命令行构建了 Boost Regex 库

bjam --with-regex variant=release --build-options=complete

它产生了这些文件:

1)boost_regex-vc100-mt-1_47.dll(导入库:boost_regex-vc100-mt-1_47.lib)

2)libboost_regex-vc100-mt-1_47.lib

3)libboost_regex-vc100-mt-s-1_47.lib

4)libboost_regex-vc100-s-1_47.lib

2个和3个.lib文件有什么区别?它们都是静态库。我已经浏览了 Boost 文档,但没有找到太多解释。

TIA

【问题讨论】:

    标签: c++ visual-studio boost shared-libraries static-libraries


    【解决方案1】:

    runtime-link 指的是您的编译器运行时的链接方式。也就是说,它对应于 VC 的 MultithreadedMultithreaded DLL 选项。运行时是指使用编译器提供的标准库所需的组件。

    您可能在某些时候看到过动态链接文件:MSVCRTXX.DLL(C 运行时)和MSVCPXX.DLL(C++ 标准库)、MFCXX.DLL(MFC 核心类)。静态对应物是 LIBC 和 LICBP(有关库表,请参见 here

    您在构建 Boost 时使用的运行时链接选项应该与您用于客户端代码时的选项相匹配。否则,您将在链接时或运行程序时因运行时不匹配而出错。

    在构建您的程序以使用动态链接运行时时,您需要在部署应用程序时包含VC redistributable

    link 指的是您的建筑将如何链接到 boost 库,可以是静态链接库,也可以是动态链接库。

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      相关资源
      最近更新 更多