首页 文章

在GNU Make中使用CMake:如何查看确切的命令?

提问于
浏览
198

我使用CMake与GNU Make,并希望完全看到所有命令(例如编译器如何执行,所有标志等) .

GNU make有 --debug ,但它似乎没有任何其他选项有用吗? CMake是否在生成的Makefile中提供了额外的标志以进行调试?

5 回答

  • 277

    运行make时,添加 VERBOSE=1 以查看完整的命令输出 . 例如:

    cmake .
    make VERBOSE=1
    

    或者,您可以将 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON 添加到cmake命令,以便从生成的Makefile中输出permanent verbose命令 .

    cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
    make
    

    要减少一些可能不太有趣的输出,您可能希望使用以下选项 . 选项 CMAKE_RULE_MESSAGES=OFF 删除[33%]构建C对象...等行,而 --no-print-directory 告诉make不打印当前目录,过滤掉 make[1]: Entering directorymake[1]: Leaving directory 等行 .

    cmake -DCMAKE_RULE_MESSAGES:BOOL=OFF -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON .
    make --no-print-directory
    
  • 6

    CMakeLists.txt 文件中的选项设置为:

    set(CMAKE_VERBOSE_MAKEFILE ON)
    
  • 2

    如果使用CMake GUI,则交换到高级视图,然后该选项称为CMAKE_VERBOSE_MAKEFILE .

  • 1

    或者只是在shell上导出VERBOSE环境变量,如下所示: export VERBOSE=1

  • 55

    我正在尝试类似的东西以确保 -ggdb 标志存在 .

    在一个干净的目录中调用make并grep你正在寻找的标志 . 寻找 debug 而不是 ggdb 我会写 .

    make VERBOSE=1 | grep debug

    -ggdb 标志模糊不清,只弹出了编译命令 .

相关问题