我使用CMake与GNU Make,并希望完全看到所有命令(例如编译器如何执行,所有标志等) .
GNU make有 --debug ,但它似乎没有任何其他选项有用吗? CMake是否在生成的Makefile中提供了额外的标志以进行调试?
--debug
运行make时,添加 VERBOSE=1 以查看完整的命令输出 . 例如:
VERBOSE=1
cmake . make VERBOSE=1
或者,您可以将 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON 添加到cmake命令,以便从生成的Makefile中输出permanent verbose命令 .
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON . make
要减少一些可能不太有趣的输出,您可能希望使用以下选项 . 选项 CMAKE_RULE_MESSAGES=OFF 删除[33%]构建C对象...等行,而 --no-print-directory 告诉make不打印当前目录,过滤掉 make[1]: Entering directory 和 make[1]: Leaving directory 等行 .
CMAKE_RULE_MESSAGES=OFF
--no-print-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 文件中的选项设置为:
CMakeLists.txt
set(CMAKE_VERBOSE_MAKEFILE ON)
如果使用CMake GUI,则交换到高级视图,然后该选项称为CMAKE_VERBOSE_MAKEFILE .
或者只是在shell上导出VERBOSE环境变量,如下所示: export VERBOSE=1
export VERBOSE=1
我正在尝试类似的东西以确保 -ggdb 标志存在 .
-ggdb
在一个干净的目录中调用make并grep你正在寻找的标志 . 寻找 debug 而不是 ggdb 我会写 .
debug
ggdb
make VERBOSE=1 | grep debug
-ggdb 标志模糊不清,只弹出了编译命令 .
5 回答
运行make时,添加
VERBOSE=1
以查看完整的命令输出 . 例如:或者,您可以将
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
添加到cmake命令,以便从生成的Makefile中输出permanent verbose命令 .要减少一些可能不太有趣的输出,您可能希望使用以下选项 . 选项
CMAKE_RULE_MESSAGES=OFF
删除[33%]构建C对象...等行,而--no-print-directory
告诉make不打印当前目录,过滤掉make[1]: Entering directory
和make[1]: Leaving directory
等行 .将
CMakeLists.txt
文件中的选项设置为:如果使用CMake GUI,则交换到高级视图,然后该选项称为CMAKE_VERBOSE_MAKEFILE .
或者只是在shell上导出VERBOSE环境变量,如下所示:
export VERBOSE=1
我正在尝试类似的东西以确保
-ggdb
标志存在 .在一个干净的目录中调用make并grep你正在寻找的标志 . 寻找
debug
而不是ggdb
我会写 .make VERBOSE=1 | grep debug
-ggdb
标志模糊不清,只弹出了编译命令 .