Makefile控制函数error和warning

Makefile 中提供了两个控制 make 运行方式的函数。其作用是当 make 执行过程中检测到某些错误时为用户提供消息,并且可以控制 make 执行过程是否继续。这两个函数是  "error" 和 "warning",我们来详细的介绍一下这两个函数。

$(error TEXT...)

函数说明如下:

  • 函数功能:产生致命错误,并提示 "TEXT..." 信息给用户,并退出 make 的执行。需要说明的是:"error" 函数是在函数展开时(函数被调用时)才提示信息并结束 make 进程。因此如果函数出现在命令中或者一个递归的变量定义时,读取 Makefile 时不会出现错误。而只有包含 "error" 函数引用的命令被执行,或者定义中引用此函数的递归变量被展开时,才会提示知名信息 "TEXT..." 同时退出 make。
  • 返回值:空
  • 函数说明:"error" 函数一般不出现在直接展开式的变量定义中,否则在 make 读取 Makefile 时将会提示致命错误。

我们通过两个例子来说明一下;
实例 1:

  1. ERROR1=1234
  2. all:
  3. ifdef ERROR1
  4. $(error error is $(ERROR1))
  5. endif

make 读取解析 Makefile 时,如果所起的变量名是已经定义好的"ERROR1",make 将会提示致命错误信息 "error is 1234" 并保存退出。
实例 2:

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

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

$(warning TEXT...)

函数说明如下:

  • 函数功能:函数 "warning" 类似于函数 "error" ,区别在于它不会导致致命错误(make不退出),而只是提示 "TEXT...",make 的执行过程继续。
  • 返回值:空
  • 函数说明:用法和 "error" 类似,展开过程相同。

Makefile控制函数error和warning相关推荐

  1. android编译error, forbidden warning出错问题解决

    android编译Kernel时,从高版本GCC起,就开始把warning作为error对待,比如我们遇到: gsl3670.c:2065:21: warning: unused variable ' ...

  2. android 编译 oserror,编译android kernel时,关闭error, forbidden warning

    编译android kernel时,遇到error, forbidden warning sound/soc/codecs/es8323.c:1249:12: warning: 'entry_read ...

  3. wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法

    内容提要:wince6.0编译报错:"error C2220: warning treated as error - no 'object' file generated" 原因是 ...

  4. wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法...

    内容提要:wince6.0编译报错:"error C2220: warning treated as error - no 'object' file generated" 原因是 ...

  5. Caffe RPN :error C2220: warning treated as error - no 'object' file generated

    在 caffe里面添加rpn_layer.cpp之后,总是出现 error C2220: warning treated as error - no 'object' file generated 这 ...

  6. 译文: C28x Compiler Error and Warning Messages

    C28x Compiler Error and Warning Messages 引言 通常,知道错误和警告的产生以及常见错误的来源是很有帮助的.本文包含错误列表.警告和备注以及常见错误列表及其解决方 ...

  7. #error和#warning使用分析

    1 #error的用法 error用于生成一个编译错误消息. 用法:#error message(message不需要用双引号包围). #error编译指示字用于自定义程序员特有的编译错误消息,类似的 ...

  8. 巨坑 jom makefile debug error 2 报错

    搜索了两天,也没找到结果 各种环境变量疯狂配置 没想到,竟然是这么来解决的 Qt Creator 编译显示红色条 jom错误 编译输出异常: jom: D:\A_Work\***\build-Oran ...

  9. WINCE6.0 error C2220: warning treated as error问题解决

    今天在编译IMX515的BSP的时候,发现下面的编译错误问题: BUILD: [00:0000002476:PROGC ] BuildingCOMPILE Pass in F:\WINCE600\PL ...

最新文章

  1. windows进程生产者消费者代码c语言,生产者消费者问题---C语言实现
  2. 软件测试培训 高级测试/测试开发基本技能列表
  3. 【struts2】struts2拦截器
  4. 基于TCP的Socket通讯
  5. 「ECharts」电商平台数据可视化实时监控系统之后台开发
  6. 机器人当中的摩擦力(未完)
  7. Windows 8 系列(九):关于VariableSizedWrapGrid与WrapGrid 对Visibility变化而引起的布局变化的支持...
  8. js中获取当前时间(yyyy-MM-dd hh-mm-ss)
  9. 基于 Generator 和 Iterator 的惰性列表
  10. java actionsupport_struts2为什么action要继承actionSupport类
  11. PandoraBox/LEDE SDK交叉编译OpenWrt ipk安装包的方法
  12. 给机器人罗宾写一封英语回信_小学英语人教(13版三起点)六年级上册Unit1
  13. codesys file读写配置参数程序
  14. twr java_Java7新特性 - TWR(try-with-resources)
  15. 16系列显卡支持的计算机系统,GTX16系列显卡登场
  16. ASP.NET MVC身份认证与授权
  17. Android开发对内存管理的学习总结
  18. postman传数组
  19. 【CSS】如何实现价格文字中间划一条线
  20. TMS320F2812介绍

热门文章

  1. ug585_ch19 UART 导读
  2. 英特尔中国开源技术委员会成立
  3. Ae 入门系列之十二:三维合成
  4. Ubuntu创建和编译文件
  5. Thunderhead Engineering PyroSim 2015.2.0604 Win64 1CD火灾消防动态模拟
  6. 《ZigBee开发笔记》第四部分 提高篇-第9章 CC2530基于GenericApp无线收发实验
  7. 会声会影2023最新版图文安装详细教程
  8. 重装系统之后,重启出现蓝屏问题总结
  9. java中斗地主游戏编写_java实现斗地主游戏
  10. [附源码]计算机毕业设计springboot公共台账管理系统