Linux如何写makefile文件
关于程序的编译和链接 —————————— 在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C 、还是pas, 编译时,编译器需要的是语法的正确,函数与变量的声明的正确.对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在 C/C 文件中),只要所有的语法正确,编译器就可以编译出中间目标文件.一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文 件). 链接时,主要是链接函数和全局变量, 总结一下,源文件 好,言归正传,GNU的make有许多的内容,闲言少叙,还是让我们开始吧. Makefile 介绍 ——————— make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序. 1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接. 2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序. 3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序. 只要我们的Makefile写得够好,所有的这一切,我们只用一个make命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序. 一、Makefile的规则 在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则. target ... : prerequisites ... command ... ... target也就是一个目标文件,可以是Object File,也可以是执行文件.还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述. prerequisites就是,要生成那个target所需要的文件或是目标. command也就是make需要执行的命令.(任意的Shell命令) 这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中. 说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行.这就是 Makefile的规则.也就是Makefile中最核心的内容. 说到底,Makefile的东西就是这样一点,好像我的这篇文档也该结束了. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |