LNK1104无法打开文件libboost_regex-vc100-mt-gd-1_54

时间:2015-11-21 23:43:22

标签: visual-c++ boost linker boost-regex

我已下载了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的解决方案资源管理器中,我点击我的proect,然后点击属性,然后在VC ++目录选项卡下,我添加了目录&#34; C:\ Program Files \ Boost& #34;进入包含目录,目录&#34; C:\ Program Files \ Boost \ stage \ lib&#34;进入库目录。但问题仍然存在。堆栈上的类似问题要求添加目录&#34; C:\ Program Files \ Boost \ stage \ lib&#34;到C / C ++选项卡下常规选项卡下的附加包含目录,以及链接器选项卡内常规选项卡下的附加包含目录。但所有这些变化对错误没有任何影响。堆栈上的另一个解决方案是添加目录&#34; C:\ Program Files \ Boost \ stage \ lib&#34;链接器选项卡下的输入选项卡下的附加依赖项,但是当我这样做时,错误更改为:

&#34; LNK1104无法打开文件&#39; C:\ Program Files \ Boost \ stage \ lib.ob&#39;&#34;

我不确定这是否是对错误的改进

因此,在尝试了所有这些似乎对其他人有用的解决方案后,我不断得到同样的错误。所以有人知道可能是错误的原因。

2 个答案:

答案 0 :(得分:0)

您收到LNK错误,这意味着您的链接器属性可能缺少某些内容。确保已将 boost 文件夹和 boost \ stage \ lib 文件夹添加到项目属性&gt;配置&gt;链接器&gt; “其他图书馆馆藏”。

另请注意,如果您使用的是Visual Studio 2015,则应该使用msvc-14.0而不是msvc-10.0生成boost二进制文件。否则,您的Platform Toolset属性应设置为v100(默认值为v140)。您可以从“项目属性”&gt;更改此设置。配置&gt;一般&gt; “平台工具集”,但您需要安装该版本的visual studio。

答案 1 :(得分:0)

如果Aciel的答案没有解决你的问题(因为我看到你还没有接受这个答案),我相信这是因为你将你的升级lib编译为32位,你在64位中使用它们程序。 如果是这样,请尝试

bjam --toolset=msvc-14.0 --build-type=complete address-model=64

将boost lib重建为64位