




已阅读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赤峰新正电工技术服务有限公司面向社会招聘69人考前自测高频考点模拟试题及答案详解一套
- 2025年新乡市诚城卓人学校招聘教师若干名考前自测高频考点模拟试题及一套参考答案详解
- 2025年攀枝花市盐边县事业单位春季引才考核的考前自测高频考点模拟试题及答案详解(典优)
- 2025黑龙江鸡西市社会治安综合治理中心招聘公益性岗位1人考前自测高频考点模拟试题及答案详解(名校卷)
- 贵州国企招聘2025贵州金融控股集团有限责任公司招聘27人笔试历年参考题库附带答案详解
- 浙江国企招聘2025宁波市轨道交通物产置业有限公司下属项目公司社会招聘2人笔试历年参考题库附带答案详解
- 2025陕西汉德车桥有限公司招聘笔试历年参考题库附带答案详解
- 2025重庆电子口岸中心劳务派遣人员招聘笔试历年参考题库附带答案详解
- 2025郑煤机春季招聘笔试历年参考题库附带答案详解
- 2025资兴市湖南东江湖食材供应链有限公司招聘工作人员14人笔试历年参考题库附带答案详解
- 网络交友新时代课件
- 2025年乡村医生公共卫生服务专业知识题库及答案解析
- 2024年江南大学公开招聘辅导员笔试题含答案
- 议论文写作入门基础任务式课件2025-2026学年统编版高中语文必修上册
- 佛州驾照考试试题题库及答案
- 《人工神经网络理论及应用》课件-第8章 深度神经网络-卷积神经网络(下)
- 索佳全站仪SET230RK3使用说明书
- 甘草中药课件
- 2025贵州贵阳机场安检站安检员岗位实习人员招聘笔试历年参考题库附带答案详解
- 建设工地试验室日常质量监督计划
- 基本生活能力评估表BADL使用指南
评论
0/150
提交评论