因工作需要,最近需要写Makefile,因此接下来一段时间会整理Makefile相关知识,欢迎大家留言讨论~
Makefile关系到整个工程的编译规则。它告诉系统哪些文件先编译,哪些文件后编译,哪些文件在什么时候清理掉等等。因为是用来告知系统如何进行操作的,所以Makefile的语言风格跟shell很像,Makefile中也可以执行操作系统的命令。
Makefile目的在于--------自动化编译
Makefile主要使用的是make工具,关于make工具参考百度百科:https://baike.sogou.com/v701760.htm?fromTitle=MAKE
【问题】为什么要大费周章的写Makefile文件来控制工程的编译呢?我们平时用的软件像“visual studio”、“pycharm”可以直接建工程自动编译的呀?
【答】在大型项目的编译上,我们往往会用到linux/Unix下的软件编译,而linux上最简单实用的就是GNU的make工具,我们使用的Windows下的很多IDE工具都是提前帮我们写好了Makefile,所以不用我们再从新写Makefile控制编译。但是,如果你想具备完成大型工程的能力,就一定要能够读懂和写Makefile。
接下来的的内容基于UNIX下的GCC。