You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取CMake搭配Ninja构建时的完整构建命令详细日志

如何获取CMake搭配Ninja构建时的完整构建命令详细日志

我完全懂你现在的困扰——默认的Ninja构建日志实在太简洁了,只显示当前在编译哪个文件,完全看不到背后实际跑的完整编译命令,想调试问题根本无从下手。针对CMake+Ninja的组合,有几个实用的方法可以让你拿到详细的构建命令日志:

  • 给Ninja直接传递详细输出参数
    你之前用的cmake --build . --target install -v里的-v是传给CMake的,并不会让Ninja输出详细命令。要让Ninja打印完整编译指令,需要把参数通过CMake传递给Ninja,用--分隔:

    cmake --build . --target install -- -v
    

    或者你也可以直接调用Ninja命令,加上-v参数:

    ninja install -v
    

    这样就能看到每个.o文件对应的完整nvcc编译命令,包括所有的选项、路径和参数。

  • 在CMake配置阶段开启默认详细日志
    如果你不想每次构建都手动加参数,可以在CMake配置时就开启 verbose 输出的默认设置,添加-DCMAKE_VERBOSE_MAKEFILE=ON参数到你的configure命令里:

    cmake -G Ninja -DCUTLASS_NVCC_ARCHS=80 -DCUTLASS_INSTALL_TESTS=ON -DCMAKE_INSTALL_PREFIX=/home/buildbot-worker/worker/build-tools-main/cutlass/install -DCMAKE_TEST_INSTALL_PREFIX=/home/test/work-main/test/install -DCMAKE_VERBOSE_MAKEFILE=ON -Wno-dev /home/test/work-main/test
    

    配置完成后,之后任何时候执行cmake --build或者直接ninja,都会自动输出完整的构建命令日志。

  • 针对特定目标输出详细日志
    如果只是想调试某个特定的测试目标(比如你提到的cutlass_test_unit_gemm_device_blas3),可以只针对这个目标开启详细输出,避免被大量无关日志干扰:

    ninja cutlass_test_unit_gemm_device_blas3 -v
    

    这样只会打印该目标对应的所有编译命令,精准定位你需要调试的部分。

这些方法都能让你看到生成目标文件时实际执行的完整命令,包含所有编译选项、头文件路径、CUDA架构参数等细节,完全满足你调试问题的需求。

备注:内容来源于stack exchange,提问作者vam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:13:01