错误:BOOST禁用线程

error : BOOST DISABLE THREADS

本文关键字:线程 BOOST 错误      更新时间:2023-10-16

我的boost库有一些问题。我使用的是freebsd,并使用ports安装了我的boost。Boost版本是:1.45,我使用g++47作为编译器。我也从来没有定义BOOST禁用线程在那里:/usr/local/include/BOOST/config/user.hpp .也正是我的错误是:

 /usr/local/include/boost/config/requires_threads.hpp:29:4: error: #error "Threading    support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" 

显式但在哪里??还有我的编译命令;

 g++47 -O3 -Wall -std=c++0x   -I. -Iinclude -I../include -I/usr/local/include   -c -o     Application.o src/Application.cpp

谢谢

实验版GCC 4.7禁用Boost.Threads。参见:https://svn.boost.org/trac/boost/ticket/6165

Edit:应该注意的是,在GCC 4.7的发布版本中,Boost高于1.48 (Boost_1_48_0仍然不能工作),线程再次工作。

参见Joachim提到的6165票:
为了定义"线程"支持,

  • GCC <= 4.6定义了_GLIBCXX__PTHREADS
  • ,而GCC>= 4.7定义了_GLIBCXX_HAS_GTHREADS .
所以,为了使用比4.6更新的GCC编译旧的boost,你需要libstdcpp3.hpp补丁。那张票里的补丁。

另一个问题也可以阻止Boost与现代编译器的工作是票证6940 (TIME_UTC在C11中有一个特殊的意义,因此Boost>= 1.50使用TIME_UTC_代替)