how - Usando CMake con GNU Make: ¿Cómo puedo ver los comandos exactos?
makefile linux c (5)
Uso CMake con GNU Make y me gustaría ver todos los comandos exactamente (por ejemplo, cómo se ejecuta el compilador, todas las banderas, etc.).
GNU make tiene --debug
, pero no parece ser tan útil, ¿hay alguna otra opción? ¿CMake proporciona marcas adicionales en el Makefile generado para propósitos de depuración?
Cuando ejecute make, agregue VERBOSE=1
para ver la salida completa del comando. Por ejemplo:
cmake .
make VERBOSE=1
O puede agregar -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
al comando cmake para la salida del comando verbose permanente de los Makefiles generados.
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make
Para reducir algunos resultados posiblemente menos interesantes, le gustaría usar las siguientes opciones. La opción CMAKE_RULE_MESSAGES=OFF
elimina las líneas como [33%] Construyendo el objeto C ... , mientras que --no-print-directory
le indica a make que no imprima el directorio actual filtrando las líneas como make[1]: Entering directory
y make[1]: Leaving directory
.
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
make --no-print-directory
Es conveniente establecer la opción en el archivo CMakeLists.txt
como:
set(CMAKE_VERBOSE_MAKEFILE ON)
Estaba intentando algo similar para asegurar que la bandera -ggdb
estuviera presente.
Llame a make en un directorio limpio y grep la bandera que está buscando. Buscando debug
lugar de ggdb
, simplemente escribiría.
make VERBOSE=1 | grep debug
El indicador -ggdb
era lo suficientemente oscuro como para que solo aparecieran los comandos de compilación.
O simplemente exporte la variable de entorno VERBOSE en el shell como este: export VERBOSE=1
Si utiliza la GUI de CMake, cambie a la vista avanzada y luego la opción se llama CMAKE_VERBOSE_MAKEFILE.