转自:http://blog.csdn.net/shangjg06/article/details/48024951
在用gcc 4.7及以上的版本gcc编译boost_thread支持的程序时会提示:
/usr/include/boost/config/requires_threads.hpp:29:4: error: #error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
这是因为boost是更具编译器的宏定义来判断gcc是否支持多线程,但是gcc 4.7及以上的版本使用的宏与老版本使用的宏不同,这样,boost自然就不能正确获取gcc支持多线程的宏,从而导致不能成功编译boost_thread支持的程序。解决办法是在/usr/include/boost/config/stdlib/libstdcpp3.hpp文件的:
[cpp] view plaincopy
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|| defined(_GLIBCXX__PTHREADS)
改为:
[cpp] view plaincopy
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|| defined(_GLIBCXX__PTHREADS) \
|| defined(_GLIBCXX_HAS_GTHREADS)
http://qgjie456.blog.163.com/blog/static/35451367201452922856542/