web-dev-qa-db-ja.com

Boost.Threadのリンク-boost_threadとboost_thread-mt

Boost.Thread 1.34.1 ライブラリにどのリンクオプションが存在するかは私にはわかりません。私はUbuntu8.04を使用していますが、どちらかを使用するとboost_threadまたはboost_thread-mtコンパイルと実行の両方をリンクしている間ですが、上記のリンクにこれらまたは他のリンクオプションに関するドキュメントがありません。

利用可能なBoost.Threadリンクオプションとはどういう意味ですか?

25

上手...

最初の面白いことは、名前の-mt修飾子が、ライブラリがOkマルチスレッドの場合)であることを示すことです。これにより、boost_thread(これがない場合)修飾子)はマルチスレッドである可能性があります-安全ではありません...

しかし、本当のことは(私自身のUbuntu 10.04ボックスで見られるように)、boost_threadboost_thread-mtへのソフトリンクです。つまり、2つは同じです。

確認したい場合は、ubuntuでコンソールを開いて(名前が長いためコンソールを全画面表示にします)、次のように入力します。

cd /usr/lib

boostライブラリがあるディレクトリに移動します。その後:

ls -l ./libboost_thread*

これにより、libboost_threadで始まるすべてのファイルが、追加情報とともに一覧表示されます。結果は次のようになります。

[...] ./libboost_thread.a
[...] ./libboost_thread-mt.a -> libboost_thread.a

ご覧のとおり、libboost_thread.aは静的ライブラリであり、libboost_thread-mt.alibboost_thread.aへのソフトリンクです。

36
paercebal

Boostライブラリの命名スキームの詳細については、以下を参照してください。 http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html#library-naming

9
CharlesB