Linuxで正規表現を使用するプログラムをコンパイルしようとしています。次の 4 つのファイルを含むディレクトリ gcc を作成する make -fgcc.mak と入力して、libs/regex/build にブースト ライブラリをビルドしました。
boost_regex-gcc-1_35
boost_regex-gcc-d-1_35
libboost_regex-gcc-1_35.a
libboost_regex-gcc-d-1_35.a
ここで、任意のディレクトリにあるプログラムから正規表現を使用したいと考えています。私は #include boost/regex.hpp
regex.hpp が見つからないというエラーが表示されました。次に、g++ コンパイラで -I オプションを指定しました。私はそのエラーを取得しませんでした。しかし、次のエラーが表示されます
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> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
グーグルで調べたところ、上記の4つのライブラリのいずれかをプログラムにリンクする必要があることがわかりました。どうすればできますか。どちらをリンクする必要がありますか? その理由は?