【转】Makefile中的$(error)和$(warning)

摘自《GNU+Makefile中文手册》整理翻译:徐海兵

Makefile中的$(error)和$(warning)

make 提供了两个控制 make 运行方式的函数。通常它们用在 Makefile 中,当 make执行过程中检测到某些错误是为用户提供消息,并且可以控制 make 过程是否继续。

$(error TEXT…)

函数功能: 产生致命错误,并提示“ TEXT…”信息给用户,并退出 make 的执行。

需要说明的是:
“error”函数是在函数展开式(函数被调用时)才提示信息并结束 make进程。
因此如果函数出现在命令中或者一个递归的变量定义中时,在读取 Makefile 时不会出现错误。
而只有包含“error”函数引用的命令被执行,或者定义中引用此函数的递归变量被展开时,才会提示致命信息“TEXT…”同时退出 make。

返回值: 空

函数说明:“error”函数一般不出现在直接展开式的变量定义中,否则在make读取Makefile时将会提示致命错误。关于递归展开和直接展开可参考 5.2 两种变量定义 一节

假设我们的 Makefile 中包含以下两个片断;
示例 1:

ifdef ERROR1
$(error error is $(ERROR1))
endif

make读取解析Makefile时,如果只起那已经定义变量“ EROOR1”, make将会提示致命错误信息“ $(ERROR1)”并退出。关于“ ifdef”可参考 7.2.1.3 关键字“ ifdef” 一小节。
示例 2:

ERR = $(error found an error!)
.PHONY: err
err: ; $(ERR)

这个例子,在 make 读取 Makefile 时不会出现致命错误。只有目标“ err”被作为一个目标被执行时才会出现。

$(warning TEXT…)

函数功能: 函数“ warning”类似于函数“ error”,区别在于它不会导致致命错误( make 不退出),而只是提示“ TEXT…”, make 的执行过程继续。

返回值: 空

函数说明: 用法和“ error”类似,展开过程相同。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值