tutorial make how create cmake gnu-make

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.