使用CMake和GNU Make:我怎样才能看到确切的命令?
我在GNU Make中使用了CMake,希望看到所有的命令(例如编译器是如何执行的,所有的标志等等)。
GNU make有--debug
,但似乎没有任何其他选项有帮助吗? 为了debugging的目的,CMake是否在生成的Makefile中提供了额外的标志?
运行make时,添加VERBOSE=1
以查看完整的命令输出。 例如:
cmake . make VERBOSE=1
或者,您可以将-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
添加到cmake命令,以便从生成的Makefiles输出永久的详细命令。
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . make
为了减less一些可能不那么有趣的输出,你可能会喜欢使用下面的选项。 选项CMAKE_RULE_MESSAGES=OFF
会删除像[33%] Building C object …这样的行 ,而--no-print-directory
指示make不打印出像make[1]: Entering directory
这样的过滤行的当前目录make[1]: Entering directory
make[1]: Leaving directory
。
cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . make --no-print-directory
将CMakeLists.txt
文件中的选项设置为:
set(CMAKE_VERBOSE_MAKEFILE ON)
如果使用CMake GUI,则切换到高级视图,然后该选项被称为CMAKE_VERBOSE_MAKEFILE。
我正在尝试类似的东西,以确保-ggdb
标志存在。
在一个干净的目录中调用make并grep你正在查找的标志。 寻找debug
而不是ggdb
我只会写。
make VERBOSE=1 | grep debug
-ggdb
标志是足够模糊的,只有编译命令popup。