4

今日、Firebreath で非常に奇妙なバグを見つけました。私は自分のプロジェクトをコンパイルしようとしていmakeて、ビルドディレクトリを上書きしていました。多くのエラーを含む膨大な出力が得られました。新しいプロジェクトを最初から実行しようとしたところ、次のエラーが発生しました。

alucard@hell ~/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

2 に答える 2

5

私の問題を解決するには、次の 2 つのことを行う必要がありました。

  1. にあるファイルにこのパッチを適用しました。libstdcpp3.hppsrc/3rdParty/boost/boost/config/stdlib
  2. ビルド ディレクトリを削除し、prepmake.sh.

迅速で便利な回答をくれた @taxilian に感謝します。

于 2012-04-08T03:37:01.957 に答える
3

ビルド ディレクトリを削除し、prepmake.sh を再実行してみてください。この問題を抱えずに FireBreath を使用している他のユーザーの数を考えると、これは実際には firebreath のバグではなく、build/ ディレクトリ内の何かが破損している可能性が高いと推測できます。

于 2012-04-05T04:49:42.337 に答える