《Makefile中文教程》由会员分享,可在线阅读,更多相关《Makefile中文教程(74页珍藏版)》请在金锄头文库上搜索。
1、跟我一起写 述什么是许很多为那些我觉得要作一个好的和就好像现在有这么多的如果你想成为一个专业人士,你还是要了解别在就不能不自己写不会写一个侧面说明了一个人是否具备完成大型工程的能力。因为,个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至 的功能作,因为一 ,其中 作系 的 。的好 就是 自 编译 ,一 写好, 需要一个,整个工程完 自 编译, 大的 了软件 的 。工具,是一个解 工具,一来说,大多数的,如+的,工程现在“述如写是我想写这 因。,不 的, 有不的,但其 都是在 文件” 做文,这 ,我 “述,我的是.
2、0,这个为 的, 是得多的。 其还是 的在这, C/C+的源 作为我 , 一些关 C/C+的编译的知识,关 这,还 关的编译器的文 。这 的编译器是 程序的编译和 在 ,我想多说关 程序编译的一些规 和一来说, 是C、C+、还是先要源文件编译成中 文件,在是 件,o 文件, 个 作 做编译后 大 的文件,这个 作 作 编译 ,编译器需要的是的 ,数 的明的 。 后,是你需要 编译器 文件的 在 文件中该 是明,定义该放在C/C+文件中 , 要 有的 ,编译器就 编译出中目标文件。一来说,每个源文件都该 一个中目标文件 ,主要是 数和 局 , ,我 使这些中目标文件 我 的程序。 器并不管数 在
3、的源文件, 管数的中目标文件在大多数 候,由 源文件太多,编译生成的中目标文件太多,在 需要明显地指出中目标文件名,这 编译很不我 要给中目标文件打个包,在 库文件 就是 件,在就是 件。总结一下,源文件先会生成中目标文件, 由中目标文件生成 文件。在编译,编译器 检测程序,和数、 是否被明。如果数未被明,编译器会给出一个警 ,但 生成在 程序 , 器会在 有的果找不到,那到就会报 错误 在错误一是001错误,意思说是说, 器未能找到数的实现。你需要指定数的归 传,闲言是让我 始吧。绍 ,需要一个 件, 需要怎么 的去编译和 程序。先,我 一个示例来说明便给大家一个感兴 识。这个示例来源 册,
4、在这个示例中,我 的工程有8个3个文件,我 要写一个如编译和 这几个文件。我 的规则是1 如果这个工程没有编译过,那么我 的 有2 如果这个工程的某几个么我 编译被修改的 目标程序。3 如果这个工程的 文件被改 了,那么我 需要编译引了这几个 文件的 目标程序。要我 的有的这一切,我 一个就 完成,会自 智能地根据前的文件修改的情况来 定哪些文件需要重编译,从自己编译 需要的文件和 目标程序。一、这个是让我 先来粗略地 一 . : .是一个目标文件, 是 是 文件。还 是一个标签 标签这特,在后续的 伪目标 节中会有叙述。生成那个要的文件或是目标。是的 。任意的 这是一个文件的”关系, 就是说
5、, 生成规则定义在白一点就是说,的文件义的 就会被 。这就是就是心的 。说到底,点,好像我的这该结束了。呵呵。还不尽,这是要写好一个会 后面一点一点地结我的工作经验给你慢慢到来。 还多着呢。 二、一个示例如前面 说的,如果一个工程有3个 文件,和8个 为了完成前面 述的那三个规则,我 的是下面的这个 子的。 o o o o o o o o o o o o o c c c h c c h c c h c c h c c h c c h h c c c rm o o o o o o 是换 符的意思。这 便 这个 保存在文件为 文件中,后在该目录下直 输入 生成 文件果要删除 文件和 有的中目标文件
6、,那么, 要简单地 一下 了。在这个标文件含 文件”文件是冒号后面的那些 件和 一个 件都有一组”文件,这些 件又是 文件 ”文件。”关系的实就是说明了目标文件是由哪些文件生成的,换言之,目标文件是哪些文件 新的。在定义好”关系后,后续的那一 定义了如生成目标文件的 作系 ,一定要 一个。记住,是怎么工作的,他 管 定义的 。果么,后续定义的 。这 要说明一点的是, 不过是一个 作名字,有点像C言中的其冒号后什么 没有,那么,找文件的”,就不会自 其后 定义的 。要 其后的 ,就要在后明显得指出这个 的有,我 在一个编译或是和编译 关的 ,如程序的打包,程序的备份,等等。三、作的在 的, 就是
7、我 输入。那么,1、目录下找名字 文件。2、如果找到,它会找文件中的 一个目标文件在面的例子中,他会找到个文件,并这个文件作为 的目标文件。3、如果是的后面的 件的文件修改 要么,他就会 后面 定义的 来生成、如果在,那么,如果找到则 这有点像一个 的过程 5、,你的 是o 文件,后 件生 任 , 就是 文件就是整个,一 地去找文件的”关系,直到 编译出 一个目标文件。在找寻的过程中,如果出现错误,如后被”的文件找不到,那么出,并报错, 定义的 的错误,或是编译不成功, 。文件的”, ,如果在我找了”关系之后,冒号后面的文件还是不在,那么 不起,我就不工作 。过述分 ,我 知道,像没有被 一个目标文件直 或 关 ,那么它后面 定义的 不会被自 ,不过,我 显示要。 来 除 有的目标文件, 便重编译。是在我 编程中,如果这个工程 被编译过了,我 修改了其中一个源文件,么根据我 的”,我 就是在这个”关系后面 定义的 , 新的 , 要 被重新 了 。如果我 改 了 h”