0

Boost Serialization Library を自分のコードにリンクしようとしています。しかし、それは機能していないようです。

g++ serialize.cpp -L"/usr/local/lib/libboost_serialization.a"

エラー :

/tmp/ccw7eX4A.o: 関数boost::archive::text_oarchive::text_oarchive(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)': serializep.cpp:(.text._ZN5boost7archive13text_oarchiveC2ERSoj[_ZN5boost7archive13text_oarchiveC5ERSoj]+0x25): undefined reference toboost::archive::text_oarchive_impl::text_oarchive_impl(std::basic_ostream >&, unsigned int)' ......... collect2: ld が 1 つの終了ステータスを返しました

しかし、共有ライブラリ g++ serialize.cpp -lboost_serialization としてリンクすると、正常に動作します。

ここで何が欠けていますか

PS:同じ質問を持つ他のStackOverflowの投稿には、上記のエラーに対して機能する回答がありません

4

2 に答える 2

1

g++ serialize.cpp -L"/usr/local/lib/libboost_serialization.a"

このコマンド ラインは完全に間違っています。-Lフラグは、ライブラリを探す場所をリンカーに指示します。提供しているライブラリを使用するようにリンカーに指示しません。代わりにこれを試してください:

g++ serialize.cpp /usr/local/lib/libboost_serialization.a
于 2012-09-29T03:33:15.107 に答える
0

私はあなたの問題を再現できないので、私ができることは、静的に boost_serialization に対して一般的にどのようにコンパイルするかを伝えることです。

 g++ myapp.cpp -o myapp -Wall -static -static-libgcc -I/usr/local/include -L/usr/local/lib -lboost_serialization -lpthread
于 2012-09-28T17:40:40.250 に答える