Gibt es eine Möglichkeit zum Debuggen von CMakeLists.txt
Dateien (zumindest Auflistung von Variablen) mit Ausnahme der Nachrichtenanweisung ?
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
und CMakeFiles\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
if
Anweisungen CmakeList.txt
? came --debug ...
und cmake --debug-output ...
drucken sie nicht. In Bash ist das Äquivalent bash -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, was bash -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
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.
Ich verwende gerne variable_watch , um meine CMakeLists.txt-Dateien zu "debuggen". Setzen Sie einfach oben in mein Skript:
variable_watch(SOME_MY_VAR)
Lesen Sie auch die env var VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERBOSE.html
Ich habe es so benutzt:
export VERBOSE=defined
make
und bekam etwas mehr Ausführlichkeit.
In anderen Fällen bearbeiten Sie die CMakeLists.txt
Datei so, dass sie die folgende Zeile enthält:
set(CMAKE_VERBOSE_MAKEFILE ON)
(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.html