Подтвердить что ты не робот

Ошибка: 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

Спасибо

4b9b3361

Ответ 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_)