2012-02-01 23 views
1

コンパイルされたBoostライブラリを使用してコンパイルしようとしています。ヘッダーのみのBoostライブラリを使用してコンパイルすることはできますが、コンパイルが必要なライブラリを使用したいので、動作させることができません。私はtoolset = gccと--build-type = complete stageを使ってBoostライブラリ全体を構築しました。私はEclipseを使用していますが、私はlibがどこにあるのかをフォルダにリンクしています:project_properties-> c/C++ build-> settings-> mingw C++リンカー - >ライブラリとライブラリ検索パス(-L) mフォルダパスをリンクします。私はあなたがする必要があるブースト/ regex.hppC++ Boostライブラリリンカが見つからない、コンパイルされない

答えて

1

を含んでブーストチュートリアルのセットアップガイドからの例コードをコンパイルしてい

undefined reference to `boost::regex_error::raise() const'

または

undefined reference to `boost::re_detail::lookup_default_collate_name(std::string const&)'

:ように私はエラーを取得していますBoostプリコンパイルされたライブラリにプログラムをリンクしてください。

例:

c++ -I path/to/boost_1_48_0 example.cpp -o example \ 
-L~/boost/stage/lib/ -lboost_regex-gcc34-mt-d-1_36 

See description here

+0

私はそれをしたと思いましたか?しかし、Eclipde IDEで直接。私はproject_properties-> c/C++ビルド - >設定 - > mingw C++リンカー - >ライブラリ(-L)で2つのフォルダを持っています – user1064036

+1

'-L'はライブラリバイナリを探す場所を指定するだけで、実際にライブラリ'-l') –

+0

でも、私はregexディレクトリからいくつかの異なる* .oをリンクしようとしましたが、何も動作しません。それは言う:私がリンクしようとしているすべてのライブラリに "見つけることができません"。 – user1064036

0

のEclipse:プロジェクトのプロパティ - > C++のビルド - >設定 - >リンカ - あなたが使用したい場合>ライブラリは

ライブラリにboost_regexを追加します。共有ライブラリまたは:/usr/lib/libboost_regex.a(またはどこでもlibboost_regex.a)静的リンクが必要な場合。

+0

boost_regexをライブラリに追加するとエラーが出る(-lboost_regexが見つからない)Windows xp btw – user1064036

+0

@ user1064036:WindowsまたはLinuxはここでは問題ありませんが、VisualC++コンパイラまたはGCCは、ブーストライブラリが自動的にリンクされるためVCの移植性のない '#pragma comment(lib、lib-name)'を使用しています。 GCC(MinGWはそれを使用します)では、手動でリンクする必要があります。 –

関連する問題