【发布时间】:2014-06-10 11:00:44
【问题描述】:
我写了一个运行良好的 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 来更改某些单词的颜色...
【问题讨论】:
标签: linux bash colors makefile