Boost-thread-mtライブラリを必要とするプログラムをコンパイルしています。 Sudo apt-get install libboost-all-dev
を使用してlibboost-all-devをインストールしましたが、コンパイラはboost-thread-mtライブラリを見つけることができないと言います。このライブラリは他のパッケージに含まれていますか?このためにインストールする必要があるものを教えてください。
-mt
サフィックスは削除されました。インストールされたBoostライブラリはマルチスレッド対応です。
libboost-thread
に対してプログラムをコンパイルできます。非-mt
libsを使用するようにソースを変更するか、シンボリックリンクlibboost_thread.a
→libboost_thread-mt.a
を作成します。共有ライブラリ.so
が必要な場合も同じです。
これは link はこの質問に関連しています。
Apt-getバージョンを使用するのではなく、ソースからブーストをコンパイルすることもできます。
引数--layout
、threading
およびbuild-type
が役立ちます。
--layout=<layout> Determines whether to choose library names
and header locations such that multiple
versions of Boost or multiple compilers can
be used on the same system.
versioned - Names of boost binaries
include the Boost version number, name and
version of the compiler and encoded build
properties. Boost headers are installed in a
subdirectory of <HDRDIR> whose name contains
the Boost version number.
tagged -- Names of boost binaries include the
encoded build properties such as variant and
threading, but do not including compiler name
and version, or Boost version. This option is
useful if you build several variants of Boost,
using the same compiler.
system - Binaries names do not include the
Boost version number or the name and version
number of the compiler. Boost headers are
installed directly into <HDRDIR>. This option
is intended for system integrators who are
building distribution packages.
The default value is 'versioned' on Windows, and
'system' on Unix.
したがって、bootstrap.sh --prefix=/path/of/yours
の後にこのコマンドを使用して、boostをインストールします。
./b2 install -j16 threading=multi --layout=tagged --build-type=complete
その後、すべての-mt
ライブラリを取得します。
プロジェクトでCMake
を使用する場合、 FindBoost モジュールで提供される次のスイッチをオフにする必要があります:-DBoost_USE_MULTITHREADED=OFF