2017-01-14 2 views
0

Я использую boost 1.61.0 с cl 19 (visual studio 2015). Я построил ускорительные библиотеки для получения начальной документации с командной строкой bootstrap и .\b2. Это создало каталог с некоторыми библиотеками префиксов vc14.Ошибка компоновщика регулярных выражений с помощью cl 19

Но когда я пытался скомпилировать получать начало REGEX программу

#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 

Что случилось с моей попыткой?

EDIT: Я изменил командной строки для компиляции:

cl main.cpp /I %BOOST_ROOT% /link /LIBPATH:%BOOST_LIB_14% /EHsc 

Теперь, я получаю эту ошибку:

LINK: fatal error LNK1104: cannot open file 'libbosst_regex-vc140-mt-s-1_61.lib' 

ответ

0

Я нашел решение.

У меня были встроенные библиотеки ускорения с bootstrap и .\b2 командами. Он построил только mt (многопоточность) и только gd (debug).

Для статической ссылки (s) библиотеки Я пробовал .\b2 runtime-link=static и этот файл bub 'libbosst_regex-vc140-mt-s-1_61.lib', и теперь все в порядке.

Я нашел пункт what's the difference between mt-gd and mt-s library.

Смежные вопросы