GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ausführen von CMake-Druckbefehlen vor der Ausführung

Eine Option, die für GNU make gilt und mit jedem Makefile funktioniert, ob von CMake generiert oder nicht, ist die Verwendung von --trace Möglichkeit zu machen. Dadurch werden die Befehle make ausgegeben ausführt und noch ausführt.

Dies gilt für alle Befehle, nicht nur für die VERBOSE=1 oder V=1 löst das Drucken von in CMake/automake generierten Makefiles aus.

Eine weitere Alternative unter Linux ist die Ausführung von make unter strace als strace -f -e trace=execve make <make options> . Die Ausgabe von strace enthält every Prozess, der ausgeführt wird:von make, von einem Shell-Skript, das make ausgeführt hat, usw.

Beispielsweise stellen Sie möglicherweise fest, dass das von CMake generierte Makefile /usr/bin/cmake -E __run_co_compile <lots of options ...> ausführt und frage mich immer noch, was die genauen Compiler-Aufrufe sind, die dieser wiederum ausführen wird. Das bekommst du mit der strace-Methode.


Ich bin mir ziemlich sicher, dass das funktionieren wird:

make VERBOSE=1

Sie sollten dies auch zu Ihrer CMakeLists.txt hinzufügen können, um Folgendes dauerhaft festzulegen:

set(CMAKE_VERBOSE_MAKEFILE on)

Dies wird in den häufig gestellten Fragen zu CMake behandelt.


Versuchen Sie für automatisch erstellte Makefiles:

make V=1

Linux
  1. Weniger Druck auf Stdout machen, wenn eine ganze Datei auf einem Bildschirm angezeigt werden kann?

  2. Cheat Sheet für Linux-Befehle

  3. So verwenden Sie die Befehle strace und ltrace unter Linux

  4. Grundlagen der Linux-Befehlszeile – Ausführen von Befehlen über die Befehlszeile

  5. Was ist der Unterschied zwischen &(kaufmännisches Und) und &&(doppeltes kaufmännisches Und) bei der gleichzeitigen Ausführung von Befehlen unter Linux

12 lustige Linux-Befehle, die Sie zum Lachen bringen können

Wie Sie wissen, was ein Befehl oder Programm genau tun wird, bevor Sie es ausführen

Wie kann man Befehle in Mathematica 8 dazu bringen, alle Kerne zu verwenden?

Macht das Ausführen von Befehlen sie langsamer?

Bash-Befehle, die nicht auf eine Seite passen - Ausgabe scrollbar machen

Lassen Sie ls alles in einer Zeile drucken (wie im Terminal)