使用cl 19增强正则表达式链接器错误

时间:2017-01-14 17:09:20

标签: c++ boost boost-regex cl

我使用boost 1.61.0和cl 19(visual studio 2015)。我使用命令行quantityitem来获取启动文档来构建boost库。这使得舞台目录包含一些vc14前缀库。

但是当我尝试编译获取启动正则表达式程序时

bootstrap

使用此命令行编译器设置:

.\b2

我收到此错误:

#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
    std::string line;
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

    while (std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        if (boost::regex_match(line, matches, pat))
            std::cout << matches[2] << std::endl;
    }
}

我的尝试出了什么问题?

编辑:我将命令行编译更改为:

cl main.cpp -I %BOOST_ROOT% -L %BOOST_LIB_14% /EHsc

现在,我收到了这个错误:

Link:: fatal error LNK1181: cannot open input file 'C:\local\boost_1_61_0\stage\lib.obj

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

我使用bootstrap.\b2命令构建了boost库。它只构建了mt(多线程)和gd(调试)库。

对于静态链接(s)库,我尝试了.\b2 runtime-link=static并且尝试了'libbosst_regex-vc140-mt-s-1_61.lib'文件,现在一切正常。

我在here找到了这一点。