【发布时间】: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