I use CMake with GNU Make and would like to see all commands exactly (for example how the compiler is executed, all the flags etc.).
GNU make has --debug
, but it does not seem to be that helpful are there any other options? Does CMake provide additional flags in the generated Makefile for debugging purpose?
When you run make, add
VERBOSE=1
to see the full command output. For example:Or you can add
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
to the cmake command for permanent verbose command output from the generated Makefiles.To reduce some possibly less-interesting output you might like to use the following options. The option
CMAKE_RULE_MESSAGES=OFF
removes lines like [ 33%] Building C object..., while--no-print-directory
tells make to not print out the current directory filtering out lines likemake[1]: Entering directory
andmake[1]: Leaving directory
.It is convenient to set the option in the
CMakeLists.txt
file as:Or simply export VERBOSE environment variable on the shell like this:
export VERBOSE=1
If you use the CMake GUI then swap to the advanced view and then the option is called CMAKE_VERBOSE_MAKEFILE.
I was trying something similar to ensure the
-ggdb
flag was present.Call make in a clean directory and grep the flag you are looking for. Looking for
debug
rather thanggdb
I would just write.make VERBOSE=1 | grep debug
The
-ggdb
flag was obscure enough that only the compile commands popped up.