找不到boost-thread-mt库


8

我正在编译一个需要boost-thread-mt库的程序。我已经使用安装了libboost-all-dev,sudo apt-get install libboost-all-dev但是编译器说它找不到boost-thread-mt库。该库是否在其他软件包中?请指导我为此需要安装的内容。


你已经libboost-thread-dev安装好了吗?
Cornelius 2014年

-mt主Boost程序包中没有库。另请参阅未解决的问题。
saiarcot895 2014年

如何安装-mt库?
Muhammad Omer 2014年

Answers:


13

-mt后缀已被删除。已安装的Boost库是多线程安全的。

您可以与编译程序libboost-thread。通过更改源以使用非-mt库或通过建立符号链接libboost_thread.alibboost_thread-mt.a。如果需要共享库,也是一样.so


2
那么...考虑到Ubuntu明智地决定以不同于其他所有人的方式做事,关于跨平台开发的任何建议吗?
别名

@Pseudonym,如果您使用的是GNU自动工具,请参见Autotconf:AC_CHECK_LIB
user.dz 2015年

1
Autoconf对于许多项目来说都是过大的杀伤力,尤其是在使用Boost.Build的情况下。
别名

@Pseudonym,我对boost不太熟悉,但check-target-builds 似乎为boost.build提供了与autoconf相同的功能。
user.dz 2015年


0

链接与此问题有关。

您也可以尝试从源代码编译boost,而不是使用apt-get版本。

参数--layoutthreadingbuild-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库。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.