web-dev-qa-db-ja.com

boost-thread-mtライブラリが見つかりません

Boost-thread-mtライブラリを必要とするプログラムをコンパイルしています。 Sudo apt-get install libboost-all-devを使用してlibboost-all-devをインストールしましたが、コンパイラはboost-thread-mtライブラリを見つけることができないと言います。このライブラリは他のパッケージに含まれていますか?このためにインストールする必要があるものを教えてください。

8
Muhammad Omer

-mtサフィックスは削除されました。インストールされたBoostライブラリはマルチスレッド対応です。

libboost-threadに対してプログラムをコンパイルできます。非-mt libsを使用するようにソースを変更するか、シンボリックリンクlibboost_thread.alibboost_thread-mt.aを作成します。共有ライブラリ.soが必要な場合も同じです。

13
user.dz

これは link はこの質問に関連しています。

Apt-getバージョンを使用するのではなく、ソースからブーストをコンパイルすることもできます。

引数--layoutthreadingおよび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ライブラリを取得します。

0
Scott Yang

プロジェクトでCMakeを使用する場合、 FindBoost モジュールで提供される次のスイッチをオフにする必要があります:-DBoost_USE_MULTITHREADED=OFF

0
Yves Martin