网站大量收购闲置独家精品文档,联系QQ:2885784924

Linux基础-Makefile解析.ppt

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

Linux 嵌入式教育 Linux基础 – Makfile 徐永宏 编译流程 编译流程: 预处理-编译-汇编-链接 每个编译的环节都会产生不同类型的文件,对于C程序: 预处理 - .i文件 (-E) 编译 - .s文件 (-S) 汇编 - .o文件 = .a文件 .so文件 (-c) 链接 - 可执行文件 每个环节都有自己的依赖,即若想生成.o文件,那么需要.s、.i、.c文件。 编译思考 对于庞大的工程项目,比如内核源码中存在成千上万个源文件,那么编译的时候,如何实现自动化编译,即源头文件与头文件或者静、动态库之间找到彼此的依赖关系进行编译,最终生成目标文件。 大多数的Winodws的程序员不需要深入了解自动化编译流程,因为Windows的IDE(Integrated Development Environment)已经做了相关的工作,比如VC,VB等。而Linux下没有这样的IDE,通常需要程序员做用脚本自行书写。 要做一个好的professional程序员,尤其是linux程序员,至少需要懂得设计该脚本 - Makefile。 Makefile的介绍 认识Makefile和make。 Makfile是一种纯文本的编译脚本,在其中可以指定需要编译哪些文件,哪些先编译,哪些后编译,哪些需要重新编译,最终需要生成怎么样的应用程序。 make是一种命令,它用来解释Makefile脚本,并根据脚本中的指定内容,进行操作。 Makefile的命名及执行方式 使用make命令执行Makefile文件。 在默认情况下,make会执行当前目录下的Makefile文件。若当前目录下找不到相关的Makefile文件,则会出现错误: make: *** No targets specified and no makefile found. Stop. Makefile文件的命名可以为“Makefile或makefile。 如果使用非标准命名的makefile,必须用命令开关-f 或 “--file”。参数 “-f name” 或 “--file nane”告诉make 读入name 作为makefile文件。 Makefile的好处 Makefile带来的好处——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。 另一个好处,某工程有10万个源文件,如果其中某一个源文件发生改变,不需要重新编译整个工程,但是我们生成应用程序前需要将所有的源文件生成.o文件。makefile会根据文件更新时间而判断,是否需要重新编译源文件成.o文件,在生成应用程序时,只需要将所有的.o文件做链接即可。 Makefile简单的练习 有三个源程序 程序fun1.c : 程序fun2.c : 程序main.c: 使用gcc编译出应用程序test: #gcc fun1.c fun2.c main.c -o test 接下来,我们使用Makefile来写一个脚本。 Makefile简单的练习 #sample makefile script CC=gcc SRCS=fun1.c fun2.c main.c EXEC=test all: $(CC) $(SRCS) -o $(EXEC) 编写完后,保存,在当前目录下执行make命令,生成可执行程序test Makefile的组成 Makefile里主要包含了五种类型的语句: 显式规则、隐式规则、变量定义、文件指示、注释 注:Makefile中可以直接调用shell命令。 显式规则: 显式规则说明了如何生成一个或多的的目标文件。这是由Makefile 的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令 隐式规则: 由于make有自动推导的功能,所以隐式的规则可以让程序员比较简略地书写Makefile,这是由make所支持,例如,makefile发现.o文件,程序就会自动去找.c文件,并编译成.o文件。 Makefile的组成 变量的定义: 在Makefile中可定义一系列的变量,变量一般都是字符串,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上 文件指示: 包括了三个部分。 在一个Makefile中引用另一个Makefile 根据某些情况指定执行Makefile中的有效部分 定义一个多行的命令。 注释: Makefile注释使用#,若Makefile需要用到“#”,则需要做转义“\#”。 Makefile的组成 #sample makefile script include other.make CC

文档评论(0)

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

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

1亿VIP精品文档

相关文档