それはすべて問題です。 cmakeでエラーが発生すると、すぐに停止せず、すべてのCMakeファイルの処理を続行する場合があります。エラーがあることがわかったのは、処理の最後にあるため、ログ全体をさかのぼって、それがどこにあるかを確認する必要があります。
最初のエラーの直後にCMakeを停止するオプション、変数、または手段はありますか?
明確化:私はソースコードのコンパイルを止めようとしているのではなく、CMakeの生成(たとえばLinuxではMakefileの生成)を止めようとしています。
ここに例があります(これは私の実際のプロジェクトではなく、エラーを生成するように特別に設計されています)。私のファイルCMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
project(test)
set_property(TARGET foo PROPERTY PROP1 TRUE)
set_property(TARGET bar PROPERTY PROP2 TRUE)
そしてcmake .
を実行すると、出力が得られます:
CMake Error at CMakeLists.txt:3 (set_property):
set_property could not find TARGET foo. Perhaps it has not yet been
created.
CMake Error at CMakeLists.txt:4 (set_property):
set_property could not find TARGET bar. Perhaps it has not yet been
created.
-- Configuring incomplete, errors occurred!
私が知りたいのは、最初に報告されたエラーの直後にcmakeが停止する可能性があるかどうかです。
CMakeを最初のエラーで停止させるには、CMakeLists.txtファイルに以下を追加します。
-Wfatal-errors
このオプションにより、コンパイラーは、さらにエラーメッセージを続けて出力するのではなく、最初に発生したエラーでコンパイルを中止します
さらに知りたい場合や追加したい場合は、さらに GCCコンパイラオプション を参照してください。
CMakeを使用していないが、最初のエラーの後でコンパイラを停止したい場合は、コマンドでフラグを使用してくださいg++ -Wfatal-errors foo.cpp