CMakeLists.txtファイルをデバッグするにはどうすればよいですか?


回答:


62

CMakeのためのインタラクティブなデバッガがありません、しかしそこにフラグもあり-Wdev--debug-outputそして--traceどのかもしれない助け。また、ログファイルチェックすることを忘れないCMakeFiles\CMakeOutput.logCMakeFiles\CMakeError.log(タイプ又はヘッダの存在を確認しながら、例えば)CMakeのによって呼び出されるプロセスの主収集出力。

バージョン3.7以降、CMakeは正式に「サーバーモード」をサポートするようになったため、IDEへの統合は近い将来改善される可能性があります。最初のサポートは両方に存在するのQt Creatorをし、Visual Studioの2017 RC


ifステートメントをデバッグするためにどちらを使用しCmakeList.txtますか?came --debug ...そしてcmake --debug-output ...それらを印刷していません。Bashでは、同等のものはbash -x <cmd>です。
jww 2016

@jww何をデバッグしようとしているのか、100%わかりませんが、の出力--traceは通常非常に広範囲です(出力をファイルにリダイレクトします!)
Joe

スクリプトをデバッグして、特定のコードブロックが入力されなかった理由を理解しようとしました。しかし、私は問題を見つけました:string(STRIP ...)壊れていました。Cmake変数の末尾の改行を削除する方法も参照してください。あなたが何をするのか知らなかったら、私の謝罪bash -x
jww 2016

ログの確認だけに言及するべきではありません。ログをチェックする方法を説明する必要があります。
トーマスジェイラッシュ

@ThomasJayRushログファイルの場所と内容に関する情報を追加しました。それを超えるものは、特定の問題によって異なります。
ジョー




2

また、env varについて読んでくださいVERBOSEhttps//cmake.org/cmake/help/latest/envvar/VERBOSE.html

私はそれをこのように使用しました:

export VERBOSE=defined
make

もう少し冗長になりました。

それ以外の場合は、CMakeLists.txtファイルを編集して次の行を含めます。

set(CMAKE_VERBOSE_MAKEFILE ON)

(これに関するいくつかの投稿はhttps://bytefreaks.net/programming-2/make-building-with-cmake-verboseです)。

また、cmakeデバッグ出力を制御する便利なオプションがあります。マンページを参照してくださいhttps//cmake.org/cmake/help/latest/manual/cmake.1.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.