【问题标题】:# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS# error "线程支持不可用:它已被 BOOST_DISABLE_THREADS 明确禁用
【发布时间】:2014-04-25 07:42:53
【问题描述】:

我一直在琢磨为什么我无法安装某个版本的 boost。我得到错误:

failed gcc.compile.c++
bin.v2/libs/thread/build/gcc-4.8/release/debug-symbols-on/threading-multi/pt
hread/thread.o...
gcc.compile.c++
bin.v2/libs/thread/build/gcc-4.8/release/debug-symbols-on/threading-multi/pt
hread/once.o
In file included from ./boost/thread/detail/platform.hpp:17:0,
                 from ./boost/thread/once.hpp:12,
                 from libs/thread/src/pthread/once.cpp:7:
./boost/config/requires_threads.hpp:29:4: error: #error "Threading support
unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
#  error "Threading support unavaliable: it has been explicitly disabled
with BOOST_DISABLE_THREADS"
    ^

    "g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall
-pedantic -g -pthread -fPIC -Wno-long-long -DBOOST_ALL_NO_LIB=1
-DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_POSIX -DNDEBUG  -I"." -c -o
"bin.v2/libs/thread/build/gcc-4.8/release/debug-symbols-on/threading-multi/p
thread/once.o" "libs/thread/src/pthread/once.cpp"

...failed gcc.compile.c++
bin.v2/libs/thread/build/gcc-4.8/release/debug-symbols-on/threading-multi/pt
hread/once.o...
...skipped

libboost_thread.so.1.48.0 for lack of

pthread/thread.o...
...skipped
libboost_thre
ad.so.1.48.0 for lack of

libboost_thread.so.1.48.0...
...skipped
libboost_thre
ad.so for lack of
libboost_thre
ad.so.1.48.0...
...failed updating 2 targets...
...skipped 3 targets...
++ '[' 1 -ne 0 ']'
++ errexit 'boost build operation failed'
++ echo 'Error building boost: boost build operation failed'
Error building boost: boost build operation failed
++ exit 1
ubuntu@ip-172-31-4-82:~/TCGA_software/GeneTorrent-3.8.5a$ cd ..
ubuntu@ip-172-31-4-82:~/TCGA_software$ /usr/local/bin/cghub/bin/gtdownload
--version
/usr/local/bin/cghub/libexec/gtdownload: error while loading shared
libraries: libboost_system.so.1.49.0: cannot open shared object file: No
such file or directory

我正在尝试安装 V 1.48 - 我想安装此版本,因为 CGHub 生物信息学包 GeneTorrent 有自己的安装 Boost (1.48) 脚本,其中包含一些添加的库,如正则表达式。自行安装最新版本的 Boost,而不是在 GeneTorrent 代码中使用构建脚本和打包的 boost 版本,导致该软件无法编译。

我在 boost 网站上在线找到了输出错误的文件:

http://www.boost.org/doc/libs/1_51_0/boost/config/requires_threads.hpp

Boost_1_48_0 包确实在 boost_1_48_0/boost/config 中有这个文件 (requires_threads.hpp)

有没有其他人遇到过这个问题?我正在尝试在 Amazon ec2 Ubuntu 14 实例上安装软件(通过源代码,因为还没有最新 Ubuntu 的版本。我确实尝试了 Ubuntu 版本 13 并且没有骰子)。

这让我有点发疯了...我在这个 .hpp 文件的前几行中看到了我收到的错误消息(# error "Threading support unavaiable: it has been explicit disabled with BOOST_DISABLE_THREADS") - 我把它们贴在下面。但是我如何不明确禁用它呢?看起来有人不久前写了一个 ptach (https://svn.boost.org/trac/boost/ticket/6165),但我什至不确定如何运行该补丁/是否考虑到提升(或者我是否应该相信某人的随机补丁!)

该文件还声明它只检查到 GCC 3.3 - 不确定这是否会有所不同。

#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
#define BOOST_CONFIG_REQUIRES_THREADS_HPP

#ifndef BOOST_CONFIG_HPP
#  include <boost/config.hpp>
#endif

#if defined(BOOST_DISABLE_THREADS)

//
// special case to handle versions of gcc which don't currently support threads:
//
#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
//
// this is checked up to gcc 3.3:
//
#if defined(__sgi) || defined(__hpux)
#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
#endif

#endif

#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" 

【问题讨论】:

    标签: c++ multithreading ubuntu boost


    【解决方案1】:

    您遇到的问题似乎与here 描述的问题相同。提供的解决方案,使用来自ticket 6165 的补丁libstdcpp3.hpp.patch 为我使用gcc 4.7.3 和boost 1.48.0

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 2011-06-01
      • 2022-12-18
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多