2

boost 1.50.0 のスレッド ライブラリをリンクしようとしていますが、問題が発生しています。問題は、スレッドの実装が見つからないことです。

私はここ、ランダムなサイト、および公式マニュアルをチェックしましたが、これには1つの理由しかないと結論付けました(リンクしている実際のライブラリには正しいファイルが含まれているため)。MinGW には自動リンクはありません。これは、利用可能なスレッドのプラットフォーム実装が存在しない可能性があることを意味します (したがって、エラーが発生します)。

私が得ているエラーの1つは次のとおりです。

` imp __ZN5boost6thread4joinEv'への未定義の参照

これはmyTread.join()から来ています。

私の質問は、ブースト スレッド ライブラリ (この場合はlibboost_thread-mgw46-mt-1_50.aという名前) に加えてリンクする必要があるライブラリ (またはライブラリ) は何ですか?

さらに、ブーストのすべてのライブラリの依存関係に関するドキュメントはありますか?

もちろん、私は完全に間違っている可能性があります。

現在、リンクしているのはブースト ライブラリのみです。スレッド、クロノ、システム。

編集

明確にするために、次のコマンドでリンクしています。

g++ -LPATH_TO_BOOST\lib -o test-boost-thread.exe src\test-boost-thread.o -lboost_thread-mgw46-mt-1_50 -lboost_chrono-mgw46-mt-1_50 -lboost_system-mgw46-mt-1_50

ライブラリの位置を変更しようとしましたが、役に立ちませんでした。

4

2 に答える 2

0

あなたの場合、投稿したファイル名を考えると、リンカー行は-lboost_thread-mgw46-mt-1_50(削除libおよび.a/ .so/ .lib) になります。のようにそれを指すシンボリックリンクがあるかもしれません (または作成したいかもしれません) 。libboost_thread.a -> libboost_thread-mgw46-mt-1_50.aその場合、短い を使用できます-lboost_thread

于 2012-07-16T22:55:11.370 に答える
0

うーん、BOOST_THREAD_USE_LIB フラグを完全に忘れていたようです。これを設定すると動作しました。

奇妙なエラーですが。

于 2012-07-16T23:08:22.030 に答える