如何在CMakeLists.txt中设置MAKEFLAGS环境变量屏蔽make目录进入提示
解决CMake配合make时屏蔽"Entering directory..."输出的问题
你之前用set(ENV{MAKEFLAGS} "--no-print-directory")无效的原因是:这个命令仅修改CMake自身运行时的环境变量,后续手动执行make时不会继承该设置,所以无法生效。
以下是两种仅通过CMakeLists.txt实现需求的方法:
方法一:直接将参数写入生成的Makefile(推荐)
使用CMAKE_ADDITIONAL_MAKEFILE_CONTENTS变量,把MAKEFLAGS的设置追加到顶层Makefile中,这样无论手动运行make还是通过cmake --build .编译,都会自动应用参数:
# 放在CMakeLists.txt的开头,project()命令之前 set(CMAKE_ADDITIONAL_MAKEFILE_CONTENTS "MAKEFLAGS += --no-print-directory")
方法二:设置CMake调用make时的参数
如果习惯用cmake --build .触发编译,可以设置CMAKE_MAKE_FLAGS变量,让CMake传递参数给make:
# 放在project()命令之前 set(CMAKE_MAKE_FLAGS "--no-print-directory")
注意:这种方法仅在通过CMake调用make时生效,手动运行make需要自己加参数,不如方法一通用。
两种方法都不需要修改系统环境变量,仅通过CMakeLists.txt即可实现跨版本屏蔽"Entering directory..."的输出。
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

