メッセージステートメントCMakeLists.txt
を除いて、ファイル(少なくとも変数のリスト)をデバッグする可能性はありますか?
回答:
CMakeのためのインタラクティブなデバッガがありません、しかしそこにフラグもあり-Wdev
、--debug-output
そして--trace
どのかもしれない助け。また、ログファイルチェックすることを忘れないCMakeFiles\CMakeOutput.log
とCMakeFiles\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>
です。
--trace
は通常非常に広範囲です(出力をファイルにリダイレクトします!)
string(STRIP ...)
壊れていました。Cmake変数の末尾の改行を削除する方法も参照してください。。あなたが何をするのか知らなかったら、私の謝罪bash -x
。
VisualGDBツールが提供する新しいCMakeスクリプトデバッガーを使用してみることができます。CMakeLists.txtファイルのステップスルー、コード/データブレークポイントの設定、変数の評価/変更などをサポートするCMakeのオープンソースフォークを使用します。
新しいデバッガーに関する詳細なステップバイステップのチュートリアルがここにあります
steveireのCMakeデーモンツールがあります。私自身は使用していませんが、デバッガーにかなり近いと思われるイントロスペクションの可能性を提供すると主張しています。
編集:それらは現在CMake-serverと呼ばれ、CMake3.7の一部です。
variable_watchを使用してCMakeLists.txtファイルを「デバッグ」するのが好きです。スクリプトの上に設定するだけです。
variable_watch(SOME_MY_VAR)
また、env varについて読んでくださいVERBOSE
:https://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