402 Stimmen

Wie zwinge ich make/GCC, mir die Befehle zu zeigen?

Ich versuche, ein Kompilierungsproblem zu beheben, aber ich kann GCC (oder vielleicht ist es make??) nicht dazu bringen, mir die tatsächlichen Compiler- und Linker-Befehle anzuzeigen, die er ausführt.

Hier ist die Ausgabe, die ich erhalte:

  CCLD   libvirt_parthelper
libvirt_parthelper-parthelper.o: In function `main':
/root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:102: undefined reference to `ped_device_get'
/root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:116: undefined reference to `ped_disk_new'
/root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:122: undefined reference to `ped_disk_next_partition'
/root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition'
/root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition'
collect2: ld returned 1 exit status
make[3]: *** [libvirt_parthelper] Error 1

Was ich sehen möchte, sollte in etwa so aussehen:

$ make
gcc -Wall   -c -o main.o main.c
gcc -Wall   -c -o hello_fn.o hello_fn.c
gcc   main.o hello_fn.o   -o main

Beachten Sie, dass dieses Beispiel die vollständige gcc Befehl angezeigt. Das obige Beispiel zeigt lediglich Dinge wie "CCLD libvirt_parthelper". Ich bin mir nicht sicher, wie man dieses Verhalten steuern kann.

18voto

Ich benutze gerne:

make --debug=j

https://linux.die.net/man/1/make

--debug[=FLAGS]

Druckt Debugging-Informationen zusätzlich zur normalen Verarbeitung. Wenn die FLAGS weggelassen werden, dann ist das Verhalten dasselbe wie bei -d angegeben wurde. FLAGS kann ein für alle Debugging-Ausgaben sein (wie bei der Verwendung von -d ), b für die grundlegende Fehlersuche, v für eine ausführlichere grundlegende Fehlersuche, i zum Aufzeigen impliziter Regeln, j für Einzelheiten zum Aufrufen von Befehlen y m zur Fehlersuche bei der Neuerstellung von Makefiles.

17voto

Ru Hasha Punkte 816

Abhängig von Ihrer automake-Version können Sie auch dies verwenden:

make AM_DEFAULT_VERBOSITY=1

Referenz: AM_DEFAULT_VERBOSITY

Anmerkung: Ich habe diese Antwort hinzugefügt, da V=1 hat bei mir nicht funktioniert.

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