2010-04-19 13 views
155

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.).Usando CMake con GNU Make: ¿Cómo puedo ver los comandos exactos?

La marca GNU tiene --debug, pero no parece ser tan útil ¿hay alguna otra opción? ¿CMake proporciona indicadores adicionales en el archivo generado Makefile para la depuración?

+1

O bien, para agregar algunos términos de búsqueda, cómo ocultar las líneas de comando completas y detalladas ejecutadas y mostrar solo el resultado de color de porcentaje de silencio silencioso. – ulidtko

+0

Superconjunto no CMake: http://stackoverflow.com/questions/5820303/how-do-i-force-make-gcc-to-show-me-the-commands –

Respuesta

214

Cuando ejecuta make, agregue VERBOSE=1 para ver la salida del comando completo. Por ejemplo:

cmake . 
make VERBOSE=1 

o puede agregar -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON al comando cmake para la salida del comando detallado permanente del Makefile generado.

cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . 
make 

Para reducir algunos resultados posiblemente menos interesantes, es posible que desee utilizar las siguientes opciones. La opción CMAKE_RULE_MESSAGES=OFF elimina líneas como [33%] Objeto Building C ..., mientras que --no-print-directory le dice a make que no imprima el directorio actual filtrando 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 
+7

Estas soluciones lo hacen demasiado detallado, imprimiendo una gran cantidad de CMake y haga internos que no sean interesantes. ¿Hay alguna forma de mostrar solo los comandos de compilación y enlace (es decir, lo que generalmente es relevante para los problemas de depuración). Quizás solo muestre el comando que falló. – Tronic

+0

El máximo puntaje de google recomienda ["si desea ver únicamente las líneas de comando de g ++, debe usar grep & Co. - si es posible - en relación con los Makefiles detallados"] (https://cmake.org/pipermail/cmake/ 2011-mayo/044451.html). Quizás los desarrolladores con mucha experiencia en cmake tengan otros consejos. –

+5

Por cierto, si está en una plataforma que lo admite 'cmake -GNinja. ; ninja -v' muestra una salida verbosa muy agradable con un mínimo de pelusa. – richq

5

Si utiliza la interfaz gráfica de usuario CMake luego intercambiar a la vista avanzada y luego la opción se llama CMAKE_VERBOSE_MAKEFILE.

+0

¿Cómo puedo configurar esta opción en archivos de texto, sin usar GUI? – osgx

+0

simplemente agregue -DCMAKE_VERBOSE_MAKEFILE = ON a su comando cmake –

39

Es conveniente establecer la opción en el archivo de CMakeLists.txt como:

set(CMAKE_VERBOSE_MAKEFILE ON) 
0

yo estaba tratando algo similar para garantizar la bandera -ggdb estaba presente.

Llame a make en un directorio limpio y grep la bandera que está buscando. Buscando debug en lugar de ggdb, me gustaría escribir.

make VERBOSE=1 | grep debug

La bandera -ggdb era lo suficientemente oscuro que sólo los comandos de compilación aparecieron.

Cuestiones relacionadas