Ошибка: BOOST DISABLE THREADS
У меня есть проблема с моей библиотекой boost. я m, используя freebsd, и установил мой импульс с помощью портов. Версия Boost: 1.45, и я использую g++ 47 в качестве компилятора. Также я никогда не определял BOOST DISABLE THREADS там:/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
Спасибо
Ответы
Ответ 1
Экспериментальная версия GCC 4.7 отключает Boost.Threads. См.: https://svn.boost.org/trac/boost/ticket/6165
Изменить: Следует отметить, что начиная с версии версии GCC 4.7 и Boost выше 1.48 (Boost_1_48_0 все еще не работает) потоки снова работают.
Ответ 2
Смотрите билет 6165, упомянутый выше Joachim:
Чтобы определить поддержку потоков,
- GCC <= 4.6 определяет
_GLIBCXX__PTHREADS
- тогда как GCC >= 4.7 определяет
_GLIBCXX_HAS_GTHREADS
.
Итак, в для компиляции старых Boosts с использованием любого GCC более позднего, чем 4.6, вам нужен патч libstdcpp3.hpp.patch, заключенный в этот билет.
Другая проблема, которая также может помешать Boost при работе с современным компилятором, - это билет 6940 (TIME_UTC
имеет специальное угашение в C11, поэтому Boost >= 1.50 вместо TIME_UTC_
)