компиляция Boost::regex

Модератор: Модераторы разделов

Serg88
Сообщения: 13

компиляция Boost::regex

Сообщение Serg88 »

Всем привет, вышел очень забавный случай, поставил boost::regex + boost::devel и прочую ерунду
Пытаюсь скомпилить простейший код:

Код: Выделить всё

#include <boost/regex.hpp>

using namespace boost;

bool regex_comp(string str)
    {
    boost::regex xRegEx("([a-zA-Zа-яА-Я]+)");
    boost::smatch res;
    if(!boost::regex_match(str, res, xRegEx))
        return false;
    cout<<"Found;"<<endl;
    cout<<res.size();
    for(int i;i<res.size();i++)
        cout<<"F"<<i<<" = "<<res[i]<<endl;
    }


вот малая часть, того что высыпал на меня g++:

/tmp/ccAld1q6.o: In function `bool boost::regex_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)':
test.cpp:(.text._ZN5boost11regex_matchIN9__gnu_cxx17__normal_iteratorIPKcSsEESaI
NS_9sub_matchIS5_EEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEbT_SD_RNS_1
3
match_resultsISD_T0_EERKNS_11basic_regexIT1_T2_EENS_15regex_constants12_match_fl
a
gsE[bool boost::regex_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)]+0x82): undefined reference to `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::match()'


Я так понимаю тут что то с линковкой, но как решить эту проблему?
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: компиляция Boost::regex

Сообщение RasenHerz »

как компилируете?
Спасибо сказали:
Serg88
Сообщения: 13

Re: компиляция Boost::regex

Сообщение Serg88 »

RasenHerz писал(а):
25.01.2010 00:22
как компилируете?


Вот так:
g++ test.cpp
Спасибо сказали:
Аватара пользователя
RasenHerz
Сообщения: 1341
ОС: Arch Linux amd64

Re: компиляция Boost::regex

Сообщение RasenHerz »

А линковать с boost кто будет?
в самом простом варианте компилировать надо так: g++ test.cpp -o test -lboost_regex (возможно будут нужны еще библиотеки для линковки)
Хотя лучше все делать с помощью pkg-config + Makefile
Спасибо сказали:
Serg88
Сообщения: 13

Re: компиляция Boost::regex

Сообщение Serg88 »

RasenHerz писал(а):
25.01.2010 12:45
А линковать с boost кто будет?
в самом простом варианте компилировать надо так: g++ test.cpp -o test -lboost_regex (возможно будут нужны еще библиотеки для линковки)
Хотя лучше все делать с помощью pkg-config + Makefile

пасиб))))

а макефайл как замутить?
Спасибо сказали: