【问题标题】:Problem with C++ Boost installation (can't find file) in VC++ 2010VC++ 2010 中的 C++ Boost 安装问题(找不到文件)
【发布时间】:2010-12-29 13:25:29
【问题描述】:

我使用来自http://www.boostpro.com/download/ 的最新可用安装程序全新安装了 Boost 1.44。然后我创建了一个 VC++ 非托管命令行项目。我按照 Boost Getting Started 教程中的说明添加了 #include <boost/regex.hpp> 行,并且我还将 Boost 安装目录放入了链接选项中。当我现在编译时,VS2010 报告了一个fatal error LNK1104: file "libboost_regex-vc100-mt-gd-1_44.lib" cannot be opened。我检查了安装目录,只有文件libboost_regex-vc100-mt-s-1_44.lib(注意-gd- vs -s-)。谁能告诉我问题是什么以及如何解决?谢谢!

【问题讨论】:

  • 我记得有相同(或相似)的问题。我查看了目录并找到了另一个静态库,将其复制并重命名,之后一切正常。在我看来,由于可能错误定义的宏,boost 构建过程创建了名称错误的文件。
  • 我也这么认为。我通过完整安装解决了这个问题,而不仅仅是“静态链接多线程”安装,它应该创建mt-s,但由于某种原因不会。而-gd- 在调试模式下编译时会被VS2010 自动使用。简而言之:完整安装解决了问题。

标签: c++ visual-studio visual-studio-2010 boost linker


【解决方案1】:

Boost 库命名约定在Getting Started page 中列出。

  • mt 表示启用了多线程
  • g 表示已链接 CRT 库的调试版本
  • d 表示您要链接到的 boost 库本身的版本是调试版本
  • s 表示 CRT 库已被 boost 库静态链接

可能发生的情况是您没有让 BoostPro 安装程序下载缺失的版本。

【讨论】:

    【解决方案2】:

    Visual Studio 2010 为您提供了 C++0x 标头 <regex>

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多