350 Stimmen

CMake mit GNU Make verwenden: Wie kann ich die genauen Befehle sehen?

Ich verwende CMake mit GNU Make und würde gerne alle Befehle genau sehen (z.B. wie der Compiler ausgeführt wird, alle Flags usw.).

GNU make hat --debug aber es scheint nicht sehr hilfreich zu sein. Gibt es noch andere Möglichkeiten? Bietet CMake zusätzliche Flags im generierten Makefile für die Fehlersuche?

470voto

richq Punkte 53842

Wenn Sie make ausführen, fügen Sie VERBOSE=1 um die vollständige Befehlsausgabe zu sehen. Zum Beispiel:

cmake .
make VERBOSE=1

Oder Sie können hinzufügen -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON an den cmake-Befehl für eine permanente ausführliche Befehlsausgabe der erzeugten Makefiles.

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make

Um einige möglicherweise uninteressante Ausgaben zu reduzieren, können Sie die folgenden Optionen verwenden. Die Option CMAKE_RULE_MESSAGES=OFF entfernt Zeilen wie [ 33%] C-Objekt aufbauen... , während --no-print-directory weist make an, das aktuelle Verzeichnis nicht auszugeben und Zeilen wie make[1]: Entering directory y make[1]: Leaving directory .

cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make --no-print-directory

102voto

James Hirschorn Punkte 5578

Es ist zweckmäßig, die Option in der Datei CMakeLists.txt file as:

set(CMAKE_VERBOSE_MAKEFILE ON)

16voto

makerj Punkte 1991

Oder exportieren Sie einfach die Umgebungsvariable VERBOSE auf der Shell wie folgt: export VERBOSE=1

11voto

cmake --build . --verbose

Unter Linux und mit Makefile-Generierung ist dies wahrscheinlich nur der Aufruf von make VERBOSE=1 unter der Haube, aber cmake --build kann für Ihr Build-System portabler sein, z.B. um über verschiedene Betriebssysteme hinweg zu arbeiten oder wenn Sie sich später entscheiden, z.B. Ninja-Builds zu erstellen:

mkdir build
cd build
cmake ..
cmake --build . --verbose

Die Dokumentation legt auch nahe, dass es gleichwertig ist mit VERBOSE=1 :

--verbose, -v

Aktivieren Sie die ausführliche Ausgabe - falls unterstützt - einschließlich der auszuführenden Build-Befehle.

Diese Option kann weggelassen werden, wenn VERBOSE Umgebungsvariable oder die CMAKE_VERBOSE_MAKEFILE-Cache-Variable gesetzt ist.

8voto

SteveL Punkte 1781

Wenn Sie die CMake-GUI verwenden, wechseln Sie in die erweiterte Ansicht und die Option heißt CMAKE_VERBOSE_MAKEFILE.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X