- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
makefile指令详解makefile指令详解
makefile 简介
1
Makefile
方便中大型程序项目的管理(不一定是基于C语言的项目)
在Linux下通过make命令调用makefile脚本,根据其定义执行shell命令行
常用规则
如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。
如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件,并链接目标程序。
如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的c文件,并链接目标程序。
2
Makefile格式
target ... : prerequisites ... #注释
command
...
target:可以为可执行文件,object文件,或标签(label)
prerequisites: 生成该target需要的文件/目标
生成该target需要执行的shell命令
3
Makefile example
edit : main.o kbd.o command.o
cc -o edit main.o kbd.o command.o
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
clean :
rm edit main.o kbd.o command.o
4
make工作原理
make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。
如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。
5
make工作原理
如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要比edit这个文件新,那么,他就会执行后面所定义的命令来生成edit这个文件。
如果edit依赖的.o文件不存在,则找到后面对应的定义规则来生成该.o文件。最后再用.o文件生成edit执行文件
6
变量的使用
edit : main.o kbd.o command.o
cc -o edit main.o kbd.o command.o
…
clean :
rm edit main.o kbd.o command.o
objects = main.o kbd.o command.o
edit : $(objects)
cc -o edit $(objects)
…
clean:
rm edit $(objects)
7
Make自动推导
只要make看到一个[whatever.o]文件,它就会自动的把相应的[whatever.c]文件加在依赖关系中。并且也会把执行命令
cc –c whatever.c推导出来。
8
Make自动推导
main.o : main.c defs.h
cc -c main.c
kbd.o : kbd.c defs.h command.h
cc -c kbd.c
command.o : command.c defs.h command.h
cc -c command.c
main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
.PHONY : clean
clean :
rm edit $(objects)
9
文件引用
include filename;
假如你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了 e.mk和f.mk,
include foo.make *.mk $(bar)=
nclude foo.make a.mk b.mk c.mk e.mk f.mk
10
您可能关注的文档
- 暑假雅思学习计划暑假雅思学习计划.docx
- 武当山社会实践报告武当山社会实践报告.docx
- 武汉市七一中学届九年级七一三月检测物理试卷武汉市七一中学届九年级七一三月检测物理试卷.docx
- 案例-实时保存数据包实现回溯效果案例-实时保存数据包实现回溯效果.docx
- 汇总:常用PP牌号汇总:常用PP牌号.docx
- 江苏南京科技职业学院单招模拟题(含解析)江苏南京科技职业学院单招模拟题(含解析).docx
- 江苏省南京市中考化学试卷(含答案)江苏省南京市中考化学试卷(含答案).docx
- 江西省高考作文题点评12篇江西省高考作文题点评12篇.docx
- 油漆标准油漆标准.docx
- 法学的魅力——从孟勤国教授的论著说起法学的魅力——从孟勤国教授的论著说起.docx
- MSB系列粗粉磨粉机设备的工作原理和日常维护MSB系列粗粉磨粉机设备的工作原理和日常维护.pptx
- MDA 多重置换扩增技术MDA 多重置换扩增技术.pptx
- ODF演示文稿ODF演示文稿.pptx
- PLC考核题库1PLC考核题库1.pptx
- JavaEE产品--项目指导(俄罗斯方块实现步骤)JavaEE产品--项目指导(俄罗斯方块实现步骤).pptx
- off2007版本PA18邮箱配置off2007版本PA18邮箱配置.pptx
- PPT感动中国十大人物PPT感动中国十大人物.pptx
- ppt版本裁剪图片如何还原的方法ppt版本裁剪图片如何还原的方法.pptx
- PP合成纸制作工艺介绍PP合成纸制作工艺介绍.pptx
- QC 成果报告(缩短竣工资料编制时间)2007QC 成果报告(缩短竣工资料编制时间)2007.pptx
最近下载
- 哮喘合并冠心病高血压病例分析课件.pptx VIP
- 2025年中期投资策略展望十大投资主题系列-中国股市十大投资主题:先进制造篇.pdf
- 《脑卒中防治知识普及》课件.ppt VIP
- 《综合实践项目 健康生活宣传展演》(教案及反思)-2024-2025学年人教版(2024)初中生物八年级上册.docx VIP
- 哮喘合并冠心病、高血压病例分析课件.pptx VIP
- 《选择健康的生活方式》(教案及反思)-2024-2025学年人教版(2024)初中生物八年级上册.docx VIP
- 《危险驾驶罪》课件.ppt VIP
- 《我的幸运一天》-课件.ppt VIP
- 一元一次不等式组含参问题.pdf VIP
- 综合实践项目+健康生活宣传展演+课件-2025-2026学年人教版生物八年级上册.pptx VIP
文档评论(0)