跟我一起写 Makefile 20051201 09:22:00~20051201 10:43:00 作者:陈皓 整理:李大锋
跟我一起写 Makefile
1.1 概述
什么是makefile 或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE 都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂. 这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML 的标识的含义. 特别在Unix下的软件编译, 你就不能不自己写makefile了, 会不会写makefile, 从一个侧面说明了一个人是否具备完成大型工程的能力. 因为,makefile关系到了整个工程的编译规则.一个工程中的源文件不计数,其按类型, 功能,模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先 编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令. makefile带来的好处就是——"自动化编译",一旦写好,只需要一个make命令,整个工 程完全自动编译, 极大的提高了软件开发的效率. make是一个命令工具, 是一个解释makefile 中指令的命令工具, 一般来说, 大多数的IDE都有这个命令, 比如: Delphi的make, Visual C++ 的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法. 现在讲述如何写makefile的文章比较少,这是我想写这篇文章的原因.当然,不同产商的 make各不相同,也有不同的语法,但其本质都是在"文件依赖性"上做文章,这里,我仅对 GNU的make进行讲述,我的环境是RedHat Linux 8.0,make的版本是3.80.必竟,这个make 是应用最为广泛的,也是用得最多的.而且其还是最遵循于IEEE 1003.2-1992 标准的 (POSIX.2). 在这篇文档中,将以C/C++的源码作为我们基础,所以必然涉及一些关于C/C++的编译的知 识,相关于这方面的内容,还请各位查看相关的编译器的文档.这里所默认的编译器是UNIX 下的GCC和CC.
1.2 关于程序的编译和链接
在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C,C++,还是pas, 首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件, 即 Object File,这个动作叫做编译(compile).然后再把大量的Object File合成执行文 件,这个动作叫作链接(link).
第 1 页 共 7 页 内部资料,注意保密
跟我一起写 Makefile 20051201 09:22:00~20051201 10:43:00 作者:陈皓 整理:李大锋
编译时,编译器需要的是语法的正确,函数与变量的声明的正确.对于后者,通常是你需 要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中), 只要所有的语法正确,编译器就可以编译出中间目标文件.一般来说,每个源文件都应该对 应于一个中间目标文件(O文件或是OBJ文件). 链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或 是OBJ文件)来链接我们的应用程序.链接器并不管函数所在的源文件,只管函数的中间目标 文件(Object File),在大多数时候,由于源文件太多,编译生成的中间目标文件太多,而 在链接时需要明显地指出中间目标文件名,这对于编译很不方便,所以,我们要给中间目标 文件打个包,在Windows下这种包叫"库文件" (Library File),也就是 .lib 文件,在UNIX 下,是Archive File,也就是 .a 文件. 总结一下, 源文件首先会生成中间目标文件, 再由中间目标文件生成执行文件. 在编译时, 编译器只检测程序语法,和函数,变量是否被声明.如果函数未被声明,编译器会给出一个 警告,但可以生成Object File.而在链接程序时,链接器会在所有的Object File中找寻函 数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般 是:Link 2001错误,意思说是说,链接器未能找到函数的实现.你需要指定函数的Object File. 好,言归正传,GNU的make有许多的内容,闲言少叙,还是让我们开始吧.
1.3 Makefile 介绍
- makefilepdf > 跟我一起写Makefile2005
-
跟我一起写Makefile2005
下载该文档 文档格式:PDF 更新时间:2009-06-02 下载次数:0 点击次数:2文档基本属性 文档语言: English 文档格式: pdf 文档作者: Craig Kaplan 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: iQ Company 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- PDF格式下载
- 更多文档...
-
上一篇:手把手教你如何写makefile
下一篇:2007年换证人员汇总表(执业)
点击查看更多关于makefilepdf的相关文档
- 您可能感兴趣的
- makefile linuxmakefile 跟我一起写makefile makefilewildcard makefile.am makefile教程 makefile文件 自动生成makefile 简单的makefile makefile编写
- 大家在找
-
- · 线路绝缘电阻测试记录
- · 桐乡杭白菊胎菊
- · excel换行
- · 改变字体的css样式表
- · 美型妖精大混战50
- · 营销学电子书
- · 铁道通信信号实习报告
- · 同城交友网qq群号
- · 城市道路平面交叉口课程设计
- · 组织行为学往届试题
- · 多元统计分析下载
- · 北京赶集网出租房
- · 青少年心理教育
- · 物理化学实验答案
- · acdsee12许可证号码
- · 驾校一点通下载2011
- · qq情侣网名2011最新长
- · 土木工程地质ppt
- · 医保审核员制度
- · 莎拉·杰茜卡·帕克
- · 襄樊二汽基地
- · 维新变法运动的说课稿
- · 环境保护报告
- · 徐之明考研
- · 荷兰蟒蛇三轮躺车图纸
- · 广汽长丰三菱帕杰罗
- · 阑尾手术价格
- · 宝鸡供电段吧
- · 宜昌私人加油站利润
- · 胎儿肠管扩张严重吗
- 赞助商链接