gpt4 book ai didi

linux - Makefile目标颜色输出

转载 作者:太空狗 更新时间:2023-10-29 12:16:06 25 4
gpt4 key购买 nike

我写了一个工作正常的 Makefile;我没有完整发布它,只是其中正在调查的部分:

COMPILE_cpp = $(CXX) $(CFLAGS) -o $@ -c $< $(MAKEDEP) $(INCLUDES)

%.o : %.cpp ; $(COMPILE_cpp)
.SUFFIXES: .o .cpp

上面的代码完成了它的职责。由于构建过程涉及许多文件,我想添加一些颜色输出。我尝试了以下方法

PRINT = @echo -e "\e[1;34mBuilding $<\e[0m"

COMPILE_cpp = $(PRINT) && $(CXX) $(CFLAGS) -o $@ -c $< $(MAKEDEP) $(INCLUDES)

%.o : %.cpp ; $(COMPILE_cpp)
.SUFFIXES: .o .cpp

Makefile 仍然可以正常工作,但现在我只能看到 $(PRINT) 的输出与选择的颜色。命令字符串 $(CXX) $(CFLAGS) -o $@ -c $< $(MAKEDEP) $(INCLUDES)已正确执行但不再打印到屏幕;我仍然可以看到最终的警告和错误。

我想避免使用外部工具(例如 colorgcc 或 CMake)并使用 bash 脚本技巧对其进行破解。

提前致谢!

编辑只是一点点补充:如果我想做一些像 grep 当前构建文件的输出以找到诸如 error 之类的字符串怎么办?或 warning

我想突出显示它们,我正在考虑调用 sed在编译器输出上更改一些单词的颜色...

最佳答案

PRINT 定义开头的 @ 符号抑制命令打印。

试试这个:

%o : %.cpp
$(PRINT)
$(COMPILE_cpp)

其中 $(COMPILE_cpp) 是您的第一个版本。不要忘记制表符缩进配方命令,不是空格。

关于linux - Makefile目标颜色输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com