Makefile简介(第二次课).pptx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Makefile简介(第二次课)

Makefile 入门刘志富 QQ 910159664姚家胜 QQ 812187492 课程大纲Makefile的功能介绍Makefile的基本元素和它的工作过程Makefile内容详解Make命令实验验收和评分标准背景知识程序的编译和链接 一般来说,像 C、C++这样的语言,首先要把源文件编译成中间代码文件,在 Windows 下也就是 .obj 文件,而UNIX 下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的 Object File 合成执行文件,这个动作叫作链接(link)。Makefile功能介绍定义整个工程的编译规则—依赖关系 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作 。自动化编译 只需要一个make命令,整个工程完全自动编译 ; make是一个解释makefile中指令的命令工具; 比如:Delphi的 make,Visual C++的 nmake,Linux 下 GNU 的makeMakefile的基本元素基本元素--规则 target ... : prerequisites ... command ... ... target是一个目标文件,可以是Object File,也可以是执行文件 prerequisites是要生成target所需要的文件或是目标 command是make需要执行的命令。(可以是任意的Shell命令) Makefile示例 insert.o : insert.c defs.h buffer.h cc -c insert.c search.o : search.c defs.h buffer.h cc -c search.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean : rm edit main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o 举例(一个工程有 3 个头文件,和 8 个 C 文件)edit : main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o (一定是个Tab键开头)cc -o edit main.o kbd.o command.o display.o \ insert.o search.o files.o utils.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 display.o : display.c defs.h buffer.h cc -c display.c Makefile的工作过程1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2、查找文件中的第一个目标文件(target),举例中的edit3、如果edit文件不存在,或是edit所依赖的文件修改时间要比edit新,就会执行后面所定义的命令来生成edit文件。4、如果edit所依赖的.o文件不存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。(类似一个递归的过程)5、make根据.o文件的规则生成 .o 文件,然后再用 .o 文件生成edit文件。 Makefile内容详解书写规则伪目标多目标静态模式文件搜寻使用变量 自动化变量自动生成依赖性嵌套执行使用函数Makefile内容详解--书写规则书写规则规则举例 foo.o : foo.c defs.h gcc -c -g foo.c 文件的依赖关系:foo.o依赖于foo.c和defs.h的文件,如果foo.c和defs.h的文件日期要比foo.o文件日期要新,或是foo.o不存在,那么依赖关系发生。生成目标的方法:gcc命令,说明如何生成foo.o这个文件。 通配符的使用foo.o : *.c *.hMakefile内容详解--伪目标伪目标 clean: rm *.o hello“伪目标”并不是一个文件(因为不生成那个文件如clean),只是一个标签,所以make无法生成它的

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档