Gibt es eine Möglichkeit zum Debuggen von CMakeLists.txt
Dateien (zumindest Auflistung von Variablen) mit Ausnahme der Nachrichtenanweisung ?
83
Gibt es eine Möglichkeit zum Debuggen von CMakeLists.txt
Dateien (zumindest Auflistung von Variablen) mit Ausnahme der Nachrichtenanweisung ?
Antworten:
Es gibt keine interaktiven Debugger für CMake, aber es gibt auch die Fahnen
-Wdev
,--debug-output
und--trace
die möglicherweise Hilfe. Denken Sie auch daran , die Protokolldateien zu überprüfen ,CMakeFiles\CMakeOutput.log
undCMakeFiles\CMakeError.log
die vor allem collect Ausgänge von Prozessen genannt durch CMake (zum Beispiel während für Gegenwart eines Typs oder Header - Kontrolle).Seit Version 3.7 unterstützt CMake nun offiziell einen "Servermodus", sodass sich die Integration in IDEs in naher Zukunft wahrscheinlich verbessern wird. Erste Unterstützung gibt es sowohl in Qt Creator als auch in Visual Studio 2017 RC
quelle
if
AnweisungenCmakeList.txt
?came --debug ...
undcmake --debug-output ...
drucken sie nicht. In Bash ist das Äquivalentbash -x <cmd>
.--trace
ist normalerweise ziemlich umfangreich (leiten Sie die Ausgabe in eine Datei um!)string(STRIP ...)
war kaputt. Siehe auch So entfernen Sie nachfolgende Zeilenumbrüche in der Cmake-Variablen. . Ich entschuldige mich, wenn Sie nicht wussten, wasbash -x
tut.Sie können versuchen, den neuen CMake Script Debugger zu verwenden, der vom VisualGDB- Tool bereitgestellt wird . Es wird eine Open-Source- Verzweigung von CMake verwendet , die das Durchlaufen von CMakeLists.txt-Dateien, das Festlegen von Code- / Daten-Haltepunkten, das Auswerten / Ändern von Variablen usw. unterstützt.
Es gibt eine detaillierte Schritt- für -Schritt - Anleitung auf den neuen Debugger hier
quelle
Es gibt Steveakes CMake Daemon Tools . Ich habe sie selbst nicht benutzt, aber sie behaupten, Möglichkeiten zur Selbstbeobachtung zu bieten, die einem Debugger ziemlich nahe zu sein scheinen.
Bearbeiten : Sie heißen jetzt CMake-Server und sind Teil von CMake 3.7.
quelle
Ich verwende gerne variable_watch , um meine CMakeLists.txt-Dateien zu "debuggen". Setzen Sie einfach oben in mein Skript:
quelle
Lesen Sie auch die env var
VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERBOSE.htmlIch habe es so benutzt:
und bekam etwas mehr Ausführlichkeit.
In anderen Fällen bearbeiten Sie die
CMakeLists.txt
Datei so, dass sie die folgende Zeile enthält:(Einige Beiträge dazu sind https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ).
Es gibt auch nützliche
cmake
Optionen zur Steuerung der Debug-Ausgabe, siehe Manpage: https://cmake.org/cmake/help/latest/manual/cmake.1.htmlquelle