【问题标题】:Boost upgrade from 1.42 to 1.61从 1.42 升级到 1.61
【发布时间】:2018-06-12 11:54:24
【问题描述】:

我们在项目中使用 boost 1.42,但由于公司政策,我们必须迁移到使用 boost 1.61。我在我们的 make 文件中将 boost 1.42 中的引用替换为 boost 1.61,并进行了编译。我遇到了许多与 boost 相关的错误,因为从 boost 1.42 到 boost 1.61 已弃用了许多 boost 方法名称,并且我修复了这些编译错误。但是,在修复这些之后,现在编译正在使用 boost 1.61 进行,但我遇到了以下链接错误—— LINK:致命错误 LNK1104:无法打开文件“libboost_signals-vc140-mt-gd-1_61.lib”

在比较 boost(1.42 和 1.61)的 lib 文件时,我发现 libboost_signals-vcxx-zzzz.lib 仅存在于 boost 1.42 版本中,而不存在于 boost 1.61 中。那么为什么链接器试图链接到 libboost_signals-vcxx-zzz.lib。有什么办法可以调试它以了解哪段代码导致了这个链接错误?

【问题讨论】:

  • 也许这不是“未解析的符号”链接器错误,但您的 makefile 告诉链接器链接这个不再存在的库?
  • 谢谢,好点,我会检查我的 make 文件。

标签: c++ boost visual-studio-2015 compiler-errors linker


【解决方案1】:

.lib 文件不随 Boost 提供;你自己建造它们。几年前您可能也为 1.42 执行此操作,但您现在需要为 1.61 执行此操作。

Build instructions for Boost 1.61 on Windows

【讨论】:

    【解决方案2】:

    您正在使用的某些 boost 库依赖于信号或仍在某些 makefile 中。它在您的 1.1 目录中丢失并且需要存在。它在这个包里:

    https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0/boost_1_61_0-msvc-14.0-64.exe/download

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2020-04-17
      • 2013-07-01
      • 2020-09-15
      • 1970-01-01
      • 2018-12-19
      • 2020-03-09
      相关资源
      最近更新 更多