你真的不知道Makefile怎么用?

Makefile是什么?

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令

-- 百度百科

通过上面的解释,可以得出Makefile的功能:

  • 组织指定规则
  • 通用系统shell,构建编译

Makefile的功能强大,可能使用C或者C++的同学深有体会,大型项目的编译构建都是自动化,如果一个项目一个项目依赖多个模块,每个项目模块又都是一个项目,使用Makefile是一个不错的选择,现在编程语言多了,开发工具更加完善,Makefile的使用变少,虽然开发效率提高了,但是很多shell的哲学反而都被屏蔽,现在很多工具的思想都是来源于makefile,先上一个Makefile的例子:

通过target以及target的依赖,完成最后的构建任务。这其实有点类似Java中ant,前端开发中gulp等,素有的思想都是一样的,只是使用的场景的不一样,那Makefile使用哪些场景:

  • C或者C++项目的构建;
  • 前端JS的打包构建;
  • 运维任务构建;

本文不是一篇Makefile的教程,只是简单介绍了一下Makefile的应用,网上很多Makefile资料,搜索一下能很快上手,应用实践。

参考文章:

  1. http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/
  2. https://www.gnu.org/software/make/manual/html_node/Simple-Makefile.html#Simple-Makefile
  3. https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_2.html
golang教程资料汇总
PHP的语法糖有哪些