博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
慢慢欣赏linux if_changed_xxx的作用
阅读量:4068 次
发布时间:2019-05-25

本文共 1659 字,大约阅读时间需要 5 分钟。

编译内核会生成很多临时文件,以 o.cmd为后缀。

打开看发现是编译脚本。
这些文件是在scripts/makefile.build文件通过如下编译宏实现:

define rule_cc_o_c	$(call echo-cmd,checksrc) $(cmd_checksrc)			  \	$(call echo-cmd,cc_o_c) $(cmd_cc_o_c);				  \	$(cmd_modversions)						  \	$(call echo-cmd,record_mcount)					  \	$(cmd_record_mcount)						  \	scripts/basic/fixdep $(depfile) $@ '$(call make-cmd,cc_o_c)' >    \	                                              $(dot-target).tmp;  \	rm -f $(depfile);						  \	mv -f $(dot-target).tmp $(dot-target).cmdendef

调用者也在同一个文件(scripts/makefile.build),编译可执行程序和ko都会生成类似的临时文件

# Built-in and composite module parts$(obj)/%.o: $(src)/%.c FORCE	$(call cmd,force_checksrc)	$(call if_changed_rule,cc_o_c)# Single-part modules are special since we need to mark them in $(MODVERDIR)$(single-used-m): $(obj)/%.o: $(src)/%.c FORCE	$(call cmd,force_checksrc)	$(call if_changed_rule,cc_o_c)	@{ echo $(@:.o=.ko); echo $@; } > $(MODVERDIR)/$(@F:.o=.mod)

u-boot-2016.09 make工具之fixdep

https://blog.csdn.net/guyongqiangx/article/details/52588409

【u-boot-2018.11】make工具之fixdep

https://blog.csdn.net/linuxweiyh/article/details/100179968

内核编译系统探秘之一 if_changed_rule

http://blog.sina.com.cn/s/blog_61c81f910100phiq.html

Uboot 中make menuconfig 做了什么?

https://www.cnblogs.com/syyxy/p/9350999.html

内核Kbuild 学习

http://blog.chinaunix.net/uid-20778443-id-103963.html
http://www.360doc.com/content/12/0107/15/6828497_177891385.shtml

Linux之Makefile(strip)

https://blog.csdn.net/zhoudengqing/article/details/41777665

【u-boot】u-boot-2016.09 make编译过程分析(二)

https://blog.csdn.net/qq_38144425/article/details/73326052

if_changed_rule/cc_o_c/any-prereq/arg-check

https://blog.csdn.net/lcw_202/article/details/6660957

你可能感兴趣的文章
Java IO
查看>>
Java NIO
查看>>
Java大数据:Hbase分布式存储入门
查看>>
Java大数据:全文搜索引擎Elasticsearch入门
查看>>
大数据学习:Hadoop入门学习书单
查看>>
大数据学习:Spark SQL入门简介
查看>>
大数据学习:Spark RDD操作入门
查看>>
大数据框架:Spark 生态实时流计算
查看>>
大数据入门:Hive和Hbase区别对比
查看>>
大数据入门:ZooKeeper工作原理
查看>>
大数据入门:Zookeeper结构体系
查看>>
大数据入门:Spark RDD基础概念
查看>>
大数据入门:SparkCore开发调优原则
查看>>
大数据入门:Java和Scala编程对比
查看>>
大数据入门:Scala函数式编程
查看>>
【数据结构周周练】002顺序表与链表
查看>>
C++报错:C4700:使用了非初始化的局部变量
查看>>
【数据结构周周练】003顺序栈与链栈
查看>>
C++类、结构体、函数、变量等命名规则详解
查看>>
C++ goto语句详解
查看>>