2012-05-10 14 views
1

私はCMakeを使って管理しているプロジェクトがあり、わたしは理解できない非常に奇妙な振る舞いをしています。ビルドディレクトリをクリアしてcmakeを実行し、makeを実行してから自分のプログラムを実行すると、pthreads/boostスレッドのどこかでアサーションが失敗するため、毎回プログラムがクラッシュします。どんなに多くの時間をかけても、このプロジェクトをきれいにするには、実行するたびにクラッシュします。しかし、CMaketCache.txtを削除してメイクファイルを再生成し、ビルドして実行すると、毎回期待どおりにプログラムが実行されます。CMakeを取り除くまではCMakeが失敗する

私は仕事に私のコードのために、以下の手順を実行する必要があり要約

...

  1. 実行cmakeのは
  2. 実行
  3. のrm CMakeCache.txt
  4. ランが
  5. 実行してくださいしてくださいプログラム

「ファイルを作成する前と後にする」 CMakeCache.txtは異なります。この行動を説明できるのは何ですか?

答えて

1

gitがインストールされていますか?もしそうなら、あなたはこのトリックを使用することができます。

  • 実行cmakeの
  • Gitは追加します。
  • gitが
  • RM CMakeCache.txt
  • 実行が
  • のgit diffを

私はあなたが何を言っているかで見ることができますいくつかの奇妙なものを作る "" -mをコミットします。 CMakeCache.txtを削除しただけなので、あなたのプログラムが何かを再コンパイルする理由はわかりません。すべてが最初のmakeから最新でなければならないので、何かが悪いです...私の推測は、別のスレッドライブラリまたはスレッドライブラリが2度目であることです。

+0

diffを調べたら、 'git reset HEAD ^'を実行して、その一時的なコミットを取り除きたいでしょう。 –

関連する問題