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


8

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


あなたは持っていますlibboost-thread-devインストールされていますか?
Cornelius 14年

-mtメインのBoostパッケージにはライブラリはありません。この未解決の質問も参照してください。
saiarcot895 2014年

-mtライブラリをインストールするにはどうすればよいですか?
Muhammad Omer

回答:


13

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

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


2
それで... Ubuntuがその知恵の中で他の人とは違うやり方でやろうと決心したことを考えると、クロスプラットフォーム開発を行う上で何かアドバイスはありますか?
仮名2015

あなたがGNUのautotoolsのを使用している場合@Pseudonymは、参照Autotconfを:AC_CHECK_LIB
user.dz

1
特にBoost.Buildを使用している場合、Autoconfは多くのプロジェクトにとって過剰です。
仮名2015年

@ Pseudonym、boostについてはあまり詳しくありませんがcheck-target-builds 、boost.buildに対してautoconfと同じ機能を提供しているようです。
user.dz 2015年

0

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


0

このリンクはこの質問に関連しています。

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

引数--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.

したがって、このコマンドを試して、後からboostをインストールしbootstrap.sh --prefix=/path/of/yoursます。

./b2 install -j16 threading=multi --layout=tagged --build-type=complete

次に、すべての-mtライブラリを取得します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.