10分钟教你学会Makefile解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《10分钟教你学会Makefile解析课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 分钟 学会 Makefile 解析 课件
- 资源描述:
-
1、嵌入式教育梅方靖Linux基础 MakfileLinux编译流程 编译流程:预处理-编译-汇编-链接 每个编译的环节都会产生不同类型的文件,对于C程序:预处理-.i文件编译 -.s文件汇编 -.o文件=.a文件.so文件 链接 -可执行文件 每个环节都有自己的依赖,即若想生成.o文件,那么需要.s、.i、.c文件。Linux编译思考 对于庞大的工程项目,比如内核源码中存在成千上万个源文件,那么编译的时候,如何实现自动化编译,即源头文件与头文件或者静、动态库之间找到彼此的依赖关系进行编译,最终生成目标文件。大多数的Winodws的程序员不需要深入了解自动化编译流程,因为Windows的IDE(I
2、ntegrated Development Environment)已经做了相关的工作,比如VC,VB等。而Linux下没有这样的IDE,通常需要程序员做用脚本自行书写。要做一个好的professional程序员,尤其是linux程序员,至少需要懂得设计该脚本-Makefile。LinuxMakefile的介绍 认识Makefile和make。Makfile是一种纯文本的编译脚本,在其中可以指定需要编译哪些文件,哪些先编译,哪些后编译,哪些需要重新编译重新编译,最终需要生成怎么样的应用程序。make是一种命令,它用来解释Makefile脚本,并根据脚本中的指定内容,进行操作。LinuxMake
3、file的命名及执行方式 使用make命令执行Makefile文件。在默认情况下,make会执行当前目录下的Makefile文件。若当前目录下找不到相关的Makefile文件,则会出现错误:make:*No targets specified and no makefile found.Stop.Makefile文件的命名可以为“Makefile或makefile。如果使用非标准命名的makefile,必须用命令开关-f 或“-file”。参数“-f”或“-file”告诉make 读入name 作为makefile文件。LinuxMakefile的好处 Makefile带来的好处“自动化编译”
4、,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。另一个好处,某工程有10万个源文件,如果其中某一个源文件发生改变,不需要重新编译整个工程重新编译整个工程,但是我们生成应用程序前需要将所有的源文件生成.o文件。makefile会根据文件更新时间而判断,是否需要重新编译源文件成.o文件,在生成应用程序时,只需要将所有的.o文件做链接即可。LinuxMakefile简单的练习 有三个源程序 程序fun1.c:程序fun2.c:程序main.c:使用gcc编译出应用程序test:#gcc fun1.c fun2.c main.c-o test接下来,我们使用Mak
5、efile来写一个脚本。LinuxMakefile简单的练习#sample makefile scriptCC=gccSRCS=fun1.c fun2.c main.cEXEC=testall:$(CC)$(SRCS)-o$(EXEC)编写完后,保存,在当前目录下执行make命令,生成可执行程序testLinuxMakefile的组成 Makefile里主要包含了五种类型的语句:显式规则、隐式规则、变量定义、文件指示、注释注:Makefile中可以直接调用shell命令。显式规则显式规则:显式规则说明了如何生成一个或多的的目标文件。这是由Makefile 的书写者明显指出,要生成的文件,文件的
6、依赖文件,生成的命令 隐式规则隐式规则:由于make有自动推导的功能,所以隐式的规则可以让程序员比较简略地书写Makefile,这是由make所支持,例如,makefile发现.o文件,程序就会自动去找.c文件,并编译成.o文件。LinuxMakefile的组成 变量的定义变量的定义:在Makefile中可定义一系列的变量,变量一般都是字符串,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上 文件指示文件指示:包括了三个部分。在一个Makefile中引用另一个Makefile根据某些情况指定执行Makefile中的有效部分定义一个多行的命令。注释注释:Makefile注释使用
7、#,若Makefile需要用到“#”,则需要做转义“#”。LinuxMakefile的组成#sample makefile scriptinclude other.makeCC=gccSRCS=fun1.c fun2.c main.cEXEC=testall:$(CC)$(SRCS)-o$(EXEC)文件指示,包含其他文件,其他文件中的变量会被包含进来CC,SRCS,EXEC为变量,都是字符串,使用时会完全被替换。makefile命令部份,变量在被引用时需要加上$()或者$注释 Makefile与程序或其它脚执行顺序一样,都是自上到下。引用未定义的变量时,不会出错,但其值为空,即什么都没有。L
展开阅读全文