使用CMake的GNU Make构建时如何只输出有意义的verbose日志?
CMake GNU Make生成器精简verbose输出方案
你当前使用的MAKEFLAGS="$MAKEFLAGS --no-print-dir" cmake --build build_dir/ --verbose命令已经实现了屏蔽gmake目录进出提示的效果,要进一步过滤cd、cmake -E等辅助命令的输出,直接使用以下构建命令即可:
MAKEFLAGS="$MAKEFLAGS --no-print-dir" cmake --build build_dir/ --verbose -- CMAKE_RULE_MESSAGES=OFF CMAKE_VERBOSE_MAKEFILE=ON
命令参数说明
- 末尾的
--用于将后续参数传递给底层调用的GNU Make程序,不需要修改已完成的CMake配置,也不需要改动CMakeLists.txt CMAKE_RULE_MESSAGES=OFF:关闭CMake生成Makefile时内置的所有规则前置日志,包括cd切换目录、cmake -E系列辅助操作的打印CMAKE_VERBOSE_MAKEFILE=ON:保留实际构建动作的完整命令输出,包括编译、链接、静态库/动态库生成等核心执行逻辑
如果不需要百分比进度提示,可以在MAKEFLAGS中额外增加-s参数,此时只会输出核心构建命令行内容:
MAKEFLAGS="$MAKEFLAGS --no-print-dir -s" cmake --build build_dir/ -- CMAKE_RULE_MESSAGES=OFF CMAKE_VERBOSE_MAKEFILE=ON
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

