Uso CMake con GNU Make y me gustaría ver todos los comandos exactamente (por ejemplo, cómo se ejecuta el compilador, todos los indicadores, etc.).
GNU make tiene --debug
, pero no parece ser tan útil ¿hay alguna otra opción? ¿CMake proporciona indicadores adicionales en el Makefile generado para fines de depuración?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
Respuestas:
Cuando ejecute make, agregue
VERBOSE=1
para ver el resultado completo del comando. Por ejemplo:O puede agregar
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
al comando cmake para obtener un resultado detallado del comando detallado de los Makefiles generados.Para reducir algunos resultados posiblemente menos interesantes, puede utilizar las siguientes opciones. La opción
CMAKE_RULE_MESSAGES=OFF
elimina líneas como [33%] Building C object ... , mientras que--no-print-directory
le dice a make que no imprima el directorio actual filtrando líneas comomake[1]: Entering directory
ymake[1]: Leaving directory
.fuente
cmake -GNinja . ; ninja -v
muestra una salida detallada muy agradable con un mínimo de pelusa.cmake --build . -- VERBOSE=1
Es conveniente configurar la opción en el
CMakeLists.txt
archivo como:fuente
CMAKE_VERBOSE_MAKEFILE
debe estar desactivado por defecto y la elección del usuario, si lo necesita, para fines de depuración.O simplemente exporte la variable de entorno VERBOSE en el shell de esta manera:
export VERBOSE=1
fuente
Si usa la GUI CMake, cambie a la vista avanzada y luego la opción se llama CMAKE_VERBOSE_MAKEFILE.
fuente
Estaba intentando algo similar para asegurarme de que la
-ggdb
bandera estuviera presente.Llame a make en un directorio limpio y seleccione la bandera que está buscando. Buscando en
debug
lugar deggdb
simplemente escribir.make VERBOSE=1 | grep debug
La
-ggdb
bandera era lo suficientemente oscura como para que solo aparecieran los comandos de compilación.fuente