Makefile 入门


在 Linux( Unix )环境下使用 GNU 的 make 工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为 Makefile 文件的编写。

所要完成的 Makefile 文件描述了整个工程的编译、连接等规则。其中包括:

  • 工程中的哪些源文件需要编译以及如何编译
  • 需要创建哪些库文件以及如何创建这些库文件
  • 如何最后产生我们想要的可执行文件。

尽管看起来可能是很复杂的事情,但是为工程编写 Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(通常对于一个工程来说会是多个)正确的 Makefile。编译整个工程你所要做的事就是在 shell 提示符下输入 make 命令。整个工程完全自动编译,极大提高了效率。

make 是一个命令工具,它解释 Makefile 中的指令。在 Makefile 文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像 C 语言有自己的格式、关键字和函数一样。而且在 Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile 在绝大多数的 IDE 开发环境中都在使用,已经成为一种工程的编译方法。

阅读更多