(Linux Debian Squeeze g++4.4 で) 個別にコンパイルされた Boost (1.54.0) ライブラリを使用したい:
- ブーストクロノ
- Boost.Context
- Boost.Filesystem
- Boost.GraphParallel
- Boost.IOStreams
- Boost.ロケール
- Boost.MPI
- Boost.ProgramOptions
- Boost.Python
- Boost.Regex
- Boost.Serialization
- Boost.Signals
- ブーストシステム
- ブーストスレッド
- ブーストタイマー
- ブーストウェーブ
これを行うために、Easy Build and Installに従って、ターミナルに入力しました
$ cd path/to/boost_1_54_0
$ ./bootstrap.sh --prefix=~/boost
$ ./b2 install
その結果、2 つのフォルダinclude
とlib
が に作成されました~/boost
。ファイル~/boost/lib
があります:
libboost_name.a
libboost_name.so
libboost_name.so.1.54.0
各ブースト ライブラリ。
次に、いくつかのライブラリ (正規表現など) を test.cpp ファイルに含めます。
#include<boost/regex.hpp> //may be also chrono, filesystem or whatever
~/boost/lib で正規表現ライブラリを検索するようにコンパイラに指示します
$ g++ -I path/to/boost_1_54_0 test.cpp -o test -L~/boost/lib -lboost_regex
しかし、これはコンパイルエラーになります:
test.cpp:(.text+0x49): undefined reference to `boost::system::generic_category()'
test.cpp:(.text+0x53): undefined reference to `boost::system::generic_category()'
test.cpp:(.text+0x5d): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
なにが問題ですか?stage
my にはフォルダーがなく、 Easy Build and Installに記載されて~/boost
いるようなものもありません。これがレゾン?libboost_regex-gcc34-mt-d-1_36.a
これがtest.cppの内容です
//I need a general solution/idea that works for any of these libraries
#include <boost/regex.hpp>
//#include <boost/chrono.hpp>
//#include <boost/filesystem.hpp>
//#include<boost/some-other-separately-compiled-library>
int main()
{
}
個別にビルドする必要があるすべての Boost ライブラリで機能する Boost ライブラリをリンクする簡単な方法はありますか?