【发布时间】: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