【问题标题】:VS2013 trying to link agains boost vc1100VS2013 试图链接 boost vc 1100
【发布时间】:2014-07-21 02:27:26
【问题描述】:

我正在将现有解决方案从 VS2008 升级到 VS2013。我们使用 boost 1_55 库。一个项目一直在尝试链接 vc110 版本的 boost;但是当我使用 VS2013 命令行编译器构建 boost 时,我得到了 vc120 boost 库(当然)。

我的 boost auto_link.hpp 文件有

#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)

     // vc11:
#    define BOOST_LIB_TOOLSET "vc110"

#  elif defined(BOOST_MSVC)

     // vc12:
#    define BOOST_LIB_TOOLSET "vc120"

在其中,如Visual Studio 2013 (vs120) asks for wrong boost libraries 推荐的那样;那我还能尝试什么?

【问题讨论】:

  • 确保使用 Visual Studio 2013 重建应用程序的每个依赖项。
  • 你是对的 - 从包含目录中删除其他版本的 boost 后清理重建是答案。

标签: c++ boost visual-studio-2013


【解决方案1】:

我首先要确保您的应用程序及其依赖项均已使用 Visual Studio 2013 重新构建。如果您使用以前的编译器构建您的任何应用程序依赖项,如果它们使用 boost,则会导致此问题。

注意:这不仅很重要,您还应始终避免在同一应用程序中使用超过 1 个版本的 Visual Studio。将 dll 链接到 Visual Studio 的早期版本可能会导致随机堆损坏,因为在这种情况下,您有超过 1 个独立堆,还可能存在与 CRT 不兼容的其他问题。

【讨论】:

  • 我们在同一个应用程序中有 3 个版本的 Visual Studio。诀窍是将项目结构与代码库分开。问题是链接到较早的 boost 版本,这些版本在 auto_link 中有注意到的错误。
猜你喜欢
  • 2015-07-08
  • 1970-01-01
  • 2014-03-16
  • 1970-01-01
  • 2016-11-16
  • 2011-01-21
  • 2013-01-18
  • 1970-01-01
  • 2011-02-27
相关资源
最近更新 更多