接上文,修改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错误忽视相关推荐

  1. 基于K8S构建企业级Jenkins CI/CD平台实战(三) 之 带你实战Spring boot/Cloud 项目 CI/CD jenkins自动化构建、部署过程

    需要环境 Git(GitLab) Harbor 私服 kubernetes-plugin 使用 Kubernetes jenkins 通过前面三篇我们已经了解了jenkins和 kubernetes- ...

  2. 基于Spring Boot 的统一错误处理

    我将展示一下如何在Spring Boot 下实现统一错误处理,使用的工具是IDEA. 首先,我们需要定义一个自定义名称的错误控制类,我把它叫做WebErrorController,这个类需要实现Err ...

  3. 基于CentOS构建高性能的LAMP平台

    基于CentOS构建高性能的LAMP平台 大纲: 一.系统 安装 二.编译安装基本环境 三.配置虚拟主机及基本性能调优 四.基本安全设置 五.附录及相关介绍 一.系统安装 1. 分区    /boot ...

  4. 基于springCloud构建微云架构技术分享

    一,什么是微服务 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过各自暴露的API ...

  5. 在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践

    欢迎关注方志朋的博客,回复"666"获面试宝典 随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体 ...

  6. 基于 K8S 构建数据中心操作系统

    在 12 月 22 日 ECUG 的下午场 ,七牛云容器计算部技术总监袁晓沛为大家带来了主题为<基于 K8S 的 DCOS 之路>的精彩分享,向大家介绍了七牛容器云目前 K8S 的状况和产 ...

  7. 如何基于DataWorks构建数据中台?

    简介:为了应对众多业务部门千变万化的数据需求和高时效性的要求,阿里巴巴首次提出了数据中台的概念,经过众多项目的实践已经沉淀出了标准化的流程和方法论.如何构建一个数据中台?一个好的数据中台需要具备哪些功 ...

  8. 网络安全公司奇安信集团是如何基于 Flink 构建 CEP 引擎实时检测网络攻击【未来不可忽视的网络安全】

    摘要: 奇安信集团作为一家网络安全公司是如何基于 Flink 构建 CEP 引擎实时检测网络攻击?其中面临的挑战以及宝贵的实践经验有哪些?本文主要内容分为以下四个方面: 背景及现状 技术架构 产品及运 ...

  9. 基于busybox构建rootfs

    它整合了许多Linux上常用的工具和命令(utilities), 如rm, ls, gzip, tftp等.对于这些工具和命令,busybox中的实现可能不是最全的,但却是最常用的,因此它的特点就是短 ...

  10. 基于Kebernetes 构建.NET Core技术中台

    今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...

最新文章

  1. java金额小写转大写(8.2)
  2. 上级对下级用通知合适吗_用报纸练书法,真的合适吗吗?
  3. 在centOS上搭建wordpress博客系统
  4. mybatis获取oracle xmltype_Mybatis【入门】
  5. Qt元对象QMetaObject的indexOfSlot等函数获取类方法注意问题
  6. css 轨道,html-当其他轨道增加时,CSS网格的轨道不会缩...
  7. CVPR2020 | 谷歌提出多目标(车辆)跟踪与检测框架 RetinaTrack
  8. _int64_在Linux对应对文件,linux下32位机与64位机基本数据类型长度对比
  9. vim trickies
  10. 回文日期(NOIP2016 普及组第二题)
  11. 7.王道考研数据结构-队列
  12. C++字符串输入输出转换
  13. 大数据虚拟化零起点-7基础运维第六步-安装Big Data Extensions Plugin
  14. logistic回归 如何_Logistic回归分析之二元Logistic回归
  15. C陷阱与缺陷-1理解函数申明
  16. 跨浏览器书签导入实例演示,更好的管理书签!
  17. Spring Cloud微服务实战
  18. 每日一题《青蛙跳步》
  19. 震惊!程序员一夜赚1W,没想到他就做了这个......
  20. td-agent windows 安装步骤

热门文章

  1. endnote导入参考文献及国标(Chinese standard)
  2. 实验四:用一维数组输出等腰三角形的杨辉三角
  3. android SVG的主要属性
  4. Tarjan+topsort(DP)【P3387】 [模板]缩点
  5. h5前期js知识点10月16日总结
  6. Datatables+Bootstrap
  7. Isim你不得不知道的技巧(整理)
  8. js 与||的妙用
  9. 深入解析字符串的比较方法:“==”操作符;String.Equals方法;String.Compare方法;String.CompareOrdinal方法。...
  10. .net框架笔记(四)