什么是Makefile?在没有接触Linux时也是对这一无所知,通过高人引荐才有所了解。“在Unix下编程,你就的自己写makefile,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。“
因为,makefile关系到了整个工程的编译规则,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,甚至于进行一些功能更复杂的操作,makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好出就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率,但是,不是说不管什么程序都的写makefile,工作量小的,就不需要了。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Visual C ++ 的nmake,Linux下的GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
不同生产商的make各不相同,各有各的语法,但其本质都是在“文件性依赖”上做文章。
总结一句话:makefile是文件,包含了编译命令或者说规则。
make是一个工具,是编辑器下解释makefile中命令的工具。