libboot_*-mt バリアントに対してリンクするかどうか、およびそれらが実際に何に使用されるかについて、少し混乱しています。
Centos 6 でブースト 1.46.0 のカスタム バックポートを使用しています。ビルドにより、/usr/lib64/libboost_thread-mt.so.7 と、他のライブラリの -mt および標準バージョンが生成されます。
スレッドを使用して計算をboost::futureに保存する単体テストプログラムを作成しました。そのテストをリンクするには、-lboost_thread-mt を追加する必要がありました。しかし、-mt バージョンを使用するために他の boost -l 引数を変更する必要はありませんでした。
ブースト サイトのライブラリ ネーミングセクションを読みましたが 、「ライブラリがマルチスレッド サポートを有効にしてビルドされたことを示しています。マルチスレッド サポートなしでビルドされたライブラリは、-mt がないことで識別できます」が実際に何を意味するのかが明確ではありません。
-lboost_thread-mt でリンクする場合、他のライブラリのマルチスレッド対応バージョンに切り替える必要がありますか? そうでない場合、いつ -mt バリアントに対してリンクする必要がありますか?
必要な場合にのみ -mt バリアントに対して選択的にリンクするための推奨事項はありますか? このプロジェクトは、ビルドに GNU Make を使用します。
-mt バリアントに対して常にリンクすると、パフォーマンスまたは機能上のペナルティはありますか?