基于cygwin构建u-boot(三)make错误忽视
接上文,修改gcc 的-std标准后,.depend文件处理仍然出现了错误:
五、错误:make中命令报错(sed找不到需要的文件)
错误告警如下:
1 make -C examples/api all 2 make[1]: 进入目录“/u-boot-2010.09/u-boot-2010.09/examples/api” 3 sed -i 's/d:\//\/cygdrive\/d\//g' .depend 4 sed:无法读取 .depend:No such file or directory 5 make[1]: *** 没有规则可以创建“all”需要的目标“.depend”。 停止。 6 make[1]: 离开目录“/u-boot-2010.09/u-boot-2010.09/examples/api” 7 Makefile:378: recipe for target `examples/api' failed 8 make: *** [examples/api] Error 2
1、分析
错误提示比较明显,是 examples/api中,没有.depend规则的产生。
而之前 sed命令,是需要.depend文件存在的。
2、解决思路1:首先会想到if...else来实现
又有两种思路,一种是make自身带的,一种是shell工具。该部分单独讨论,不再本文描述。(大家可以自己尝试)
3、解决思路2:先建立一个空.depend文件
原始代码如下:
1 $(obj).depend: $(src)Makefile $(TOPDIR)/config.mk $(SRCS) $(HOSTSRCS) 2 @rm -f $@ 3 @for f in $(SRCS); do \ 4 g=`basename $$f | sed -e 's/\(.*\)\.\w/\1.o/'`; \ 5 $(CC) -M $(CPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ 6 done 7 @for f in $(HOSTSRCS); do \ 8 g=`basename $$f | sed -e 's/\(.*\)\.\w/\1.o/'`; \ 9 $(HOSTCC) -M $(HOSTCPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ 10 done 11 sed -i 's/d:\//\/cygdrive\/d\//g' $@
只需要在第2行后,增加 touch $@ 即可。
4、解决思路3:利用make的忽视错误规则
make 对其规则中调用的外部程序返回的错误可选的应对。
To ignore errors in a recipe line, write a ‘-’ at the beginning of the line’s text
(after theinitial tab). The ‘-’ is discarded before the line is passed to the shell for execution.
可知,如果将“-”放置到调用命令之前,就可以忽视外部命令的错误。
可以利用: - sed -i 's/d:\//\/cygdrive\/d\//g' $@
来忽视相关错误。
扩展:对于include这个内部命令也可以这样用,但还有一种别名:sinclude (相当于 -include)。
前文 autoconf.mk.dep 格式错误时,涉及到sinclude。其主要是解决引用找不到文件等错误,如果文件内部错误,sinclude也无法避免。
详细信息参见:https://www.gnu.org/software/make/manual/make.html#Errors
5、后记
make错误信息含义:
https://www.gnu.org/software/make/manual/make.html#Error-Messages
之前,make的错误为:multiple target patterns. Stop.
1 ‘missing target pattern. Stop.’ 2 ‘multiple target patterns. Stop.’ 3 ‘target pattern contains no ‘%’. Stop.’ 4 ‘mixed implicit and static pattern rules. Stop.’ 5 These are generated for malformed static pattern rules. 6 The first means there’s no pattern in the target section of the rule; 7 the second means there are multiple patterns in the target section; 8 the third means the target doesn’t contain a pattern character (%); 9 and the fourth means that all three parts of the static pattern rule 10 contain pattern characters (%)–only the first two parts should. 11 If you see these errors and you aren’t trying to create a static pattern rule, 12 check the value of any variables in your target and prerequisite lists 13 to be sure they do not contain colons.
===【未完待续】===
转载于:https://www.cnblogs.com/yvivid/p/3574234.html
基于cygwin构建u-boot(三)make错误忽视相关推荐
- 基于K8S构建企业级Jenkins CI/CD平台实战(三) 之 带你实战Spring boot/Cloud 项目 CI/CD jenkins自动化构建、部署过程
需要环境 Git(GitLab) Harbor 私服 kubernetes-plugin 使用 Kubernetes jenkins 通过前面三篇我们已经了解了jenkins和 kubernetes- ...
- 基于Spring Boot 的统一错误处理
我将展示一下如何在Spring Boot 下实现统一错误处理,使用的工具是IDEA. 首先,我们需要定义一个自定义名称的错误控制类,我把它叫做WebErrorController,这个类需要实现Err ...
- 基于CentOS构建高性能的LAMP平台
基于CentOS构建高性能的LAMP平台 大纲: 一.系统 安装 二.编译安装基本环境 三.配置虚拟主机及基本性能调优 四.基本安全设置 五.附录及相关介绍 一.系统安装 1. 分区 /boot ...
- 基于springCloud构建微云架构技术分享
一,什么是微服务 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过各自暴露的API ...
- 在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践
欢迎关注方志朋的博客,回复"666"获面试宝典 随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体 ...
- 基于 K8S 构建数据中心操作系统
在 12 月 22 日 ECUG 的下午场 ,七牛云容器计算部技术总监袁晓沛为大家带来了主题为<基于 K8S 的 DCOS 之路>的精彩分享,向大家介绍了七牛容器云目前 K8S 的状况和产 ...
- 如何基于DataWorks构建数据中台?
简介:为了应对众多业务部门千变万化的数据需求和高时效性的要求,阿里巴巴首次提出了数据中台的概念,经过众多项目的实践已经沉淀出了标准化的流程和方法论.如何构建一个数据中台?一个好的数据中台需要具备哪些功 ...
- 网络安全公司奇安信集团是如何基于 Flink 构建 CEP 引擎实时检测网络攻击【未来不可忽视的网络安全】
摘要: 奇安信集团作为一家网络安全公司是如何基于 Flink 构建 CEP 引擎实时检测网络攻击?其中面临的挑战以及宝贵的实践经验有哪些?本文主要内容分为以下四个方面: 背景及现状 技术架构 产品及运 ...
- 基于busybox构建rootfs
它整合了许多Linux上常用的工具和命令(utilities), 如rm, ls, gzip, tftp等.对于这些工具和命令,busybox中的实现可能不是最全的,但却是最常用的,因此它的特点就是短 ...
- 基于Kebernetes 构建.NET Core技术中台
今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...
最新文章
- java金额小写转大写(8.2)
- 上级对下级用通知合适吗_用报纸练书法,真的合适吗吗?
- 在centOS上搭建wordpress博客系统
- mybatis获取oracle xmltype_Mybatis【入门】
- Qt元对象QMetaObject的indexOfSlot等函数获取类方法注意问题
- css 轨道,html-当其他轨道增加时,CSS网格的轨道不会缩...
- CVPR2020 | 谷歌提出多目标(车辆)跟踪与检测框架 RetinaTrack
- _int64_在Linux对应对文件,linux下32位机与64位机基本数据类型长度对比
- vim trickies
- 回文日期(NOIP2016 普及组第二题)
- 7.王道考研数据结构-队列
- C++字符串输入输出转换
- 大数据虚拟化零起点-7基础运维第六步-安装Big Data Extensions Plugin
- logistic回归 如何_Logistic回归分析之二元Logistic回归
- C陷阱与缺陷-1理解函数申明
- 跨浏览器书签导入实例演示,更好的管理书签!
- Spring Cloud微服务实战
- 每日一题《青蛙跳步》
- 震惊!程序员一夜赚1W,没想到他就做了这个......
- td-agent windows 安装步骤
热门文章
- endnote导入参考文献及国标(Chinese standard)
- 实验四:用一维数组输出等腰三角形的杨辉三角
- android SVG的主要属性
- Tarjan+topsort(DP)【P3387】 [模板]缩点
- h5前期js知识点10月16日总结
- Datatables+Bootstrap
- Isim你不得不知道的技巧(整理)
- js 与||的妙用
- 深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。...
- .net框架笔记(四)