来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,
甚至于进行更复杂的功能操作,因为 makele 就像一个 Shell 脚本一样,其中
也可以执行操作系统的命令。
makele 带来的好处就是——“自动化编译”,一旦写好,只需要一个 make 命
令,整个工程完全自动编译,极大的提高了软件开发的效率。make 是一个命令
工具,是一个解释 makele 中指令的命令工具,一般来说,大多数的 IDE 都有
这个命令,比如:Delphi 的 make,Visual C++的 nmake,Linux 下 GNU
的 make。可见,makele 都成为了一种在工程方面的编译方法。
现在讲述如何写 makele 的文章比较少,这是我想写这篇文章的原因。当然,
不同产商的 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 Makele 介绍
make 命令执行时,需要一个 Makele 文件,以告诉 make 命令需要怎么样
的去编译和链接程序。
首先,我们用一个示例来说明 Makele 的书写规则。以便给大家一个感兴认识。
这个示例来源于 GNU
的 make 使用手册,在这个示例中,我们的工程有 8 个 C 文件,和 3 个头文件,
我们要写一个 Makele 来
告诉 make 命令如何编译和链接这几个文件。我们的规则是:
1. 如果这个工程没有编译过,那么我们的所有 C 文件都要编译并被链接。
2. 如果这个工程的某几个 C 文件被修改,那么我们只编译被修改的 C 文
件,并链接目标程序。
3. 如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头
文件的 C 文件,并链接目标程序。
只要我们的 Makele 写得够好,所有的这一切,我们只用一个 make 命令就
可以完成,make 命令会自
动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编
评论0
最新资源