【发布时间】:2015-11-21 23:43:21
【问题描述】:
我已经下载了 boost 库并想将它包含在 Visual c++ 中,但是在从 boost 网站复制一段示例代码后,我得到了错误
“LNK1104 无法打开文件‘libboost_regex-vc100-mt-gd-1_54’”
该文件确实存在。我猜它是我在命令提示符下运行 bootstrap 命令时创建的,我遵循指南https://www.youtube.com/watch?v=6trC5zVXzG0
我使用的示例文件如下:
#include <boost/regex.hpp>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string line;
boost::regex pat("^Subject: (Re: |Aw: )*(.*)");
while (cin)
{
getline(cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
cout << matches[2] << endl;
}
return 0;
}
很抱歉,我知道这种问题在堆栈溢出时已经出现过好几次了,但是我已经尝试了我见过的大多数解决方案,但错误仍然存在。
在 Visual c++ 2015 的解决方案资源管理器中,我点击我的项目,然后点击属性,然后在 VC++ 目录选项卡下,我已将目录“C:\Program Files\Boost”添加到包含目录中,并将目录“C:\Program Files\Boost\stage\lib”放入库目录。但问题仍然存在。堆栈上的类似问题要求将目录“C:\Program Files\Boost\stage\lib”添加到 C/C++ 选项卡下的常规选项卡下的附加包含目录,以及内部常规选项卡下的附加包含目录链接器选项卡。但是所有这些更改对错误没有影响。堆栈上的另一个解决方案是将目录“C:\Program Files\Boost\stage\lib”添加到链接器选项卡下输入选项卡下的附加依赖项中,但是当我这样做时,错误变为:
“LNK1104 无法打开文件 'C:\Program Files\Boost\stage\lib.ob'”
我不确定这是否是对错误的改进
因此,在尝试了所有这些似乎对其他人有效的解决方案之后,我一直遇到同样的错误。那么有谁知道错误的原因可能是什么。
【问题讨论】:
-
我在 libboost_regex-vc100-mt-gd-1_54.lib 中添加了;进入配置属性 -> 链接器 -> 输入中的附加依赖项属性。这似乎将错误更改为 4 个新错误,“LNK2038 Mismatched detection for '_MSC_VER':value '1600' doesn't match value '1900' in stdafx.obj”
-
尝试重建library。 Visual c++ 2015 == v140,你正在链接 vc100 版本。
标签: visual-c++ boost linker boost-regex