ошибка: BOOST DISABLE THREADS - PullRequest
       12

ошибка: BOOST DISABLE THREADS

33 голосов
/ 28 ноября 2011

У меня возникла проблема с моей буст-библиотекой.Я использую 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

Спасибо

Ответы [ 2 ]

44 голосов
/ 28 ноября 2011

Экспериментальная версия 4.7 GCC отключает Boost.Threads. Смотри: https://svn.boost.org/trac/boost/ticket/6165

Редактировать: Следует отметить, что начиная с версии GCC 4.7 и Boost выше 1.48 (Boost_1_48_0 все еще не работает) потоки снова работают.

8 голосов
/ 25 июня 2014

См. Билет 6165 , упомянутый выше Иоахимом:
Чтобы определить поддержку «потоков»,

  • GCC <= 4.6 определяет <code>_GLIBCXX__PTHREADS
  • , тогда как GCC> = 4.7 определяет _GLIBCXX_HAS_GTHREADS.
Итак, для компиляции старых Повышение с использованием любого GCC, более позднего, чем 4.6, требует наличия патча libstdcpp3.hpp.patch , который включен в этот тикет.

Другая проблема, которая также может помешать Boost при работе с современным компилятором, - это заявка 6940 (TIME_UTC имеет специальное значение в C11, поэтому Boost> = 1.50 использует TIME_UTC_ вместо)

...