CMake を使用して管理しているプロジェクトがあり、理解できない非常に奇妙な動作に遭遇しました。ビルド ディレクトリをクリアし、cmake を実行し、make を実行してからプログラムを実行すると、pthreads/boost スレッドのどこかでアサーションに失敗するため、毎回プログラムがクラッシュします。このプロジェクトを何度も作成してきれいにしても、実行するたびにクラッシュします。ただし、CMaketCache.txt を削除し、メイクファイルを再生成し、ビルドして実行すると、プログラムは毎回期待どおりに実行されます。
要約すると、コードを機能させるには、次の手順に従う必要があります...
- Cmake を実行する
- メイクを実行
- rm CMakeCache.txt
- メイクを実行
- プログラムを実行
CMakeCache.txt を削除する前後の Make ファイルが異なるようです。この動作を説明できるものは何ですか?