Uso CMake con GNU Make e vorrei vedere tutti i comandi esattamente (per esempio come viene eseguito il compilatore, tutti i flag ecc.).
GNU make ha --debug
, ma non sembra essere così utile ci sono altre opzioni? CMake fornisce flag aggiuntivi nel Makefile generato a scopo di debug?
Quando esegui make, aggiungi VERBOSE=1
per vedere l’output completo del comando. Per esempio:
cmake . make VERBOSE=1
Oppure puoi aggiungere -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
al comando cmake per l’output del comando verbose permanente dai Makefile generati.
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . make
Per ridurre un output forse meno interessante, ti consigliamo di utilizzare le seguenti opzioni. L’opzione CMAKE_RULE_MESSAGES=OFF
rimuove le linee come [33%] Building C object … , mentre --no-print-directory
dice make per non stampare la directory corrente filtrando le righe come make[1]: Entering directory
e make[1]: Leaving directory
.
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . make --no-print-directory
È conveniente impostare l’opzione nel file CMakeLists.txt
come:
set(CMAKE_VERBOSE_MAKEFILE ON)
Se si utilizza la GUI di CMake, passare alla visualizzazione avanzata e quindi l’opzione si chiama CMAKE_VERBOSE_MAKEFILE.
Stavo cercando qualcosa di simile per garantire che la bandiera -ggdb
fosse presente.
Chiama make in una directory pulita e svuota la bandiera che stai cercando. Cercando il debug
piuttosto che ggdb
vorrei solo scrivere.
make VERBOSE=1 | grep debug
Il flag -ggdb
era abbastanza oscuro da far -ggdb
solo i comandi di compilazione.
O semplicemente esportare la variabile d’ambiente VERBOSE sulla shell in questo modo: export VERBOSE=1