什么是 makefile?或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows 的 IDE 都为你做了这个工作,但我觉得要作一个好的和professional 的程序员,makefile 还是要懂。这就好像现在有这么多的 HTML 的编辑器,但如果你想成为一个专业人士,你还是要了解 HTML 的标识的含义。特别在 Unix 下的软件编译,你就不能不自己写 makefile 了,会不会写 makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 因为,make
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工 程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile 中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++ 的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和
链接程序。
首先,我们用一个示例来说明 Makefile 的书写规则。以便给大家一个感兴认识。这个示
例来源于 GNU 的 make 使用手册,在这个示例中,我们的工程有 8 个 C 文件,和 3 个
头文件,我们要写一个 Makefile 来告诉 make 命令如何编译和链接这几个文件。我们的
规则是:
1)如果这个工程没有编译过,那么我们的所有 C 文件都要编译并被链接。
2)如