【问题标题】:boost library 1.47.1 build 'lib' prefix causing LNK1104 errorboost library 1.47.1 build 'lib' 前缀导致 LNK1104 错误
【发布时间】:2015-01-08 09:43:45
【问题描述】:

我在生成正确的 boost .lib 文件以使用我得到的 VS 项目进行编译时遇到困难。看来,在 VS2010 命令提示符下使用“b2.exe”执行完整的构建安装后,我只能生成包含“lib”前缀的 boost 库文件。

当我开始编译我的项目时,我收到以下错误消息: “错误 LNK1104:无法打开文件 'boost_signals-vc90-mt-1_47.lib'”

通过 lib 文件夹后,我可以看到我的 boost 构建只生成了“libboost_signals-vc90-mt-1_47.lib”

boost 文档提供了有关 lib 前缀的以下信息:

库 前缀:除了 Microsoft Windows,每个 Boost 库名称都以此字符串开头。在 Windows 上,只有普通的静态库使用 lib 前缀;导入库和 DLL 不会。

到目前为止,我已经为 msvc-9.0 工具集尝试了以下构建选项: '构建类型=完成' '链接=静态,共享'

任何关于如何生成所需 .lib 文件的建议将不胜感激。 非常感谢。

【问题讨论】:

    标签: visual-studio-2010 boost .lib


    【解决方案1】:

    link=static 应在您链接到静态版本的 boost 库时使用。 link=shared - 应该在动态链接到 boost 时使用。它将增加对 boost dll 的额外依赖。

    您还可以使用 link=static,shared 来构建两个版本 - 静态和动态。

    在项目中定义“BOOST_ALL_DYN_LINK”控制您如何链接到 boost。 如果已定义 - 它是动态链接,如果未定义 - 它是静态链接。

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 1970-01-01
      • 2010-10-03
      • 2016-02-09
      • 1970-01-01
      • 2017-12-12
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多