添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Makefile 打印变量


在编写Makefile时,调试信息的输出对于查找和解决问题至关重要。Makefile提供了几种不同的方式来输出调试信息,包括 info warning error 以及 echo 命令。下面我们将详细介绍这些工具的使用方法以及它们之间的区别。

makefile 打印变量方式有两种情况

  1. 使用info/warning/error增加调试信息
    1. 打印字符串
$(info xxx-msg)  # 输出字符串xxxx-msg,不需要加"",info后加空格
=>  xxxx-msg 
2. 打印变量
$(info $(GOPATH)) #打印变量GOPATH,变量名用$())
=> /home/user/code/go
3. 字符串、变量混合打印
$(info GOPATH: $(GOPATH))
=> GOPATH: /home/hellotalk/code/go
4. info/warning/error之间区别  
    info只输出信息:
$(info GOPATH is: $(GOPATH)) 
=> GOPATH is: /home/hellotalk/code/go
    warning输出信息和对应的行号:
  $(warning ***** $(shell date))
  => scripts/make-rules/common.mk:99: ***** Tue Jun 18 05:27:20 PM CST 2024
    error输出信息和对应的行号,并停止makefile的编译:
$(error GOPATH: $(GOPATH))
=> scripts/make-rules/golang.mk:12: *** GOPATH: /home/hellotalk/code/go。 停止。
  1. 使用echo增加调试信息(echo只能在target:后面的语句中使用,且前面是个TAB)
# 假设我们有一个变量  
MY_VARIABLE := Hello, Makefile!  
# 定义一个目标(target)  
  # 注意这里有一个制表符(Tab),而不是空格  
  @echo "开始构建..."  
  @echo "MY_VARIABLE 的值是: $(MY_VARIABLE)"  
  # 假设这里有一些其他的构建命令...  
  @echo "构建完成!"  
# 如果你还有其他的目标(target),也可以在这里定义  
clean:  
  # 同样是制表符(Tab)开头  
  @echo "开始清理..."