2012-04-04 3 views
3

Сегодня я нашел очень странную ошибку с Firebreath. Я пытался скомпилировать мой проект, выполнив make над моим каталогом сборки. Я получил huge output с большим количеством ошибок. Я пытаюсь запустить новый проект с нуля, и я получил эти ошибки:Boost странная ошибка с Firebreath

[email protected] ~/Documentos/sc/build 
> make 
[ 1%] Built target FireBreath_Cmake 
[ 2%] Building CXX object boost/libs/thread/CMakeFiles/boost_thread.dir/src/tss_null.cpp.o 
    In file included from /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/boost/thread/detail/platform.hpp:17:0, 
      from /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/boost/thread/detail/config.hpp:20, 
      from /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/libs/thread/src/tss_null.cpp:7: 
    /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/boost/config/requires_threads.hpp:29:4: error: #error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" 
    In file included from /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/boost/thread/detail/config.hpp:20:0, 
      from /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/libs/thread/src/tss_null.cpp:7: 
    /home/alucard/Documentos/sc/firebreath/src/3rdParty/boost/boost/thread/detail/platform.hpp:67:9: error: #error "Sorry, no boost threads are available for this platform." 
make[2]: [boost/libs/thread/CMakeFiles/boost_thread.dir/src/tss_null.cpp.o] Error 1 
make[1]: [boost/libs/thread/CMakeFiles/boost_thread.dir/all] Error 2 
make: [all] Error 2 

Кажется, проблема с моей системой, но если я попробовать следующий пример я не получаю сообщение об ошибке:

#include <boost/thread.hpp> 

int main(int argc, char *argv[]) { 
    return 0; 
} 

Скомпилируйте с помощью: g++ test.cpp -pthread -lboost_thread.

Любая идея? Заранее спасибо.

ответ

4

Чтобы решить мою проблему я должен сделать две вещи:

  1. Applied this патч в мой файл libstdcpp3.hpp, расположенный в src/3rdParty/boost/boost/config/stdlib.
  2. Удалите мой каталог для сборки и запустите команду prepmake.sh.

Спасибо @taxilian за быстрый и полезный ответ.

2

Попробуйте удалить каталог сборки и перезапустить prepmake.sh; учитывая, как многие другие используют FireBreath без этой проблемы, я могу только догадываться, что это не ошибка firebreath, поэтому, скорее всего, ошибка связана с чем-то поврежденным в каталоге build /.