




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MakeFile学习,陈龙,简单介绍Makefile,简化编译时所需要下达的指令;若在编译完成之后,修改了某个原始码档案,则make仅会针对被修改了的档案进行编译,其它的objectfile不会被更动;最后可以依照相依性来更新(update)执行档。,编译和链接规则(输入make命令之后将按照以下规则工作),如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。,通用的Makefile里包含什么,在一个通用Makefile中通常包含下面内容:1、需要由make工具创建的目标体(target),通常是目标文件或可执行文件。2、要创建的目标体所依赖的文件(dependency_file)。3、创建每个目标体时需要运行的命令(command)。格式如下:target:dependency_filescommand目标:依赖文件1,依赖文件2命令依赖文件后缀依赖文件1,依赖文件2,目标注意:命令行必须以单个的TAB字符进行缩进,不能是空格当然也可以跟目标和依赖文件在一行,不过要以;隔开,完整Makefile里包含什么,显式规则由Makefile的书写者明显指出,要生成的文件,文件的依赖关系和生成的命令如:foo.o:foo.cdefs.h依赖关系gcc-ofoo.ofoo.c生成目标的方法(方式)隐晦规则make有自动推导的功能,这样我们就可以简略地书写Makefile如:foo.o:foo.c(.o文件自己推导出同名的依赖文件.c.)变量定义这里面的变量一般都是字符串,他有点像c语言的宏如:H:=foo.cgcc-ofoo.o$(H)(赋值可以用:=也可以直接用=)文件指示包含3部分,一个是在一个Makefie中引用另一个Makefile,就像c语言的include一样;另一个是根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。注释注释符用“#”如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“#”。,书写一个简单的Makefile(适合所有文件在一个文件夹的情况),cn_work:main.ocn_work.ofun.ogccmain.ocn_work.ofun.o-ocn_workmain(命令一定要用以Tab开头)cn_work.o:cn_work.cgcc-ccn_work.c-ocn_workmain.o:main.ccn_work.hgcc-cmain.c-omain.ofun.o:fun.cfun.hgcc-cfun.c-ofun.oclean:rm-fcn_work*.o-c参数,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,目标:在工作目录下有4个文件夹分别是sources(源文件)obj(中间文件)headers(头文件)bin(目标文件)sources里面有main.ccn_work.cfun.cobj里面最初没有文件headers里面有fun.hcn_work.h最终目标取名为cn_work它应存放到bin里面开始写Makefile的预备知识:gcc的3个参数:1.-o指定目标文件gccsources/main.c-obin/main2.-c编译的时候只生产目标文件不链接gcc-csources/main.c-oobj/main.o3.-I主要指定头文件的搜索路径gcc-Iheaders-cmain.c-omain.o,多目录下Makefile的写法(1),bin/cn_work:obj/main.oobj/cn_work.oobj/fun.ogccobj/main.oobj/cn_work.oobj/fun.o-obin/cn_work(命令一定要用以Tab开头)obj/cn_work.o:sources/cn_work.cgcc-Iheaders-csources/cn_work.c-oobj/cn_work.oobj/main.o:sources/main.cgcc-Iheaders-csources/main.c-ofile_o/main.oobj/fun.o:sources/fun.cgcc-Iheaders-cfile_c/fun.c-ofile_o/fun.oclean:rm-fbin/cn_workfile_o/*.o,多目录下Makefile的写法(2),用隐式规则改进:3个符号介绍:1.$表示要生成的目标2.$表示全部的依赖文件3.$表示第一个依赖文件bin/cn_work:obj/main.oobj/cn_work.oobj/fun.ogcc$-o$(命令一定要用以Tab开头)obj/cn_work.o:sources/cn_work.cgcc-Iheaders-c$-o$obj/main.o:sources/main.cgcc-Iheaders-c$-o$obj/fun.o:sources/fun.cgcc-Iheaders-c$生成可执行文件gcchello.o-ohello1gcc-st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医药包装可降解材料行业跨境出海项目商业计划书
- 儿童剧团行业跨境出海项目商业计划书
- 人工智能语音助手娱乐化行业跨境出海项目商业计划书
- 历史谜题破解行业跨境出海项目商业计划书
- 美容医院机器人行业跨境出海项目商业计划书
- 医疗人才培养与认证行业深度调研及发展项目商业计划书
- 祛皱医学眼霜制造行业跨境出海项目商业计划书
- 矿洞探险之旅行业跨境出海项目商业计划书
- 2025年中国金边卡通圆盘市场调查研究报告
- 2025年中国轮胎制氮充气机市场调查研究报告
- 物业小饭桌管理制度
- 2025年湖南省普通高中学业水平考试合格性考试模拟试题(长郡版高一生物)(原卷版)
- 医师职业素养课件
- 电网工程设备材料信息参考价2025年第一季度
- 2024年安徽省初中学业水平考试生物试题含答案
- Python试题库(附参考答案)
- 2024年浙江省中考英语试题卷(含答案解析)
- 移动取消宽带委托书
- 建筑变形测量规范JGJ
- 胃肠外科病人围手术期全程营养管理中国专家共识2021版PPT课件
- 年产量50万吨苯乙烯工艺设计
评论
0/150
提交评论