Как может я использовать Повышение:: библиотека regex.hpp в C++?

Я пытался пользоваться библиотекой Boost, но я перестал работать, см. мой код:

#include "listy.h"
#include <boost/regex.hpp>
using namespace boost;

ListyCheck::ListyCheck() {

}

ListyCheck::~ListyCheck() {

}

bool ListyCheck::isValidItem(std::string &__item) {
    regex e("(\\d{4}[- ]){3}\\d{4}");

    return regex_match(__item, e);
}

Когда я пытался скомпилировать его, я получаю те сообщения:

/usr/include/boost/regex/v4/regex_match.hpp:50: неопределенная ссылка на 'повышение:: re_detail:: perl_matcher <__ gnu_cxx:: __ normal_iterator, станд.:: средство выделения>>, станд.:: средство выделения, станд.:: средство выделения>>>>, повышение:: regex_traits>

:: соответствие ()'

/usr/include/boost/regex/v4/basic_regex.hpp:425: неопределенная ссылка на 'повышение:: basic_regex>

:: do_assign (символьная константа*, символьная константа*, неподписанный интервал)'

/usr/include/boost/regex/v4/perl_matcher.hpp:366: неопределенная ссылка на 'повышение:: re_detail:: perl_matcher <__ gnu_cxx:: __ normal_iterator, станд.:: средство выделения>>, станд.:: средство выделения, станд.:: средство выделения>>>>, повышение:: regex_traits>

:: construct_init (повышение:: basic_regex>> const&, повышение:: regex_constants:: _match_flags)'

и т.д...

5
задан malhobayyeb 11 June 2010 в 08:40
поделиться

3 ответа

Это ошибки компоновщика. Библиотека Boost regex не является библиотекой только для заголовков, как shared_ptr (например) - вам нужно компоновать с бинарной библиотекой .a или .lib или любой другой.

4
ответ дан 18 December 2019 в 10:42
поделиться

Вам необходимо установить ссылку на libboost_regex. Добавьте -lboost_regex в переключатель компилятора, если вы используете gcc.

11
ответ дан 18 December 2019 в 10:42
поделиться

Вы должны ссылаться на boost_regex.

1
ответ дан 18 December 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: