Makefile是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了哪些文件需要编译,哪些文件不需要编译;哪些文件需要先编译,哪些文件需要后编译;哪些文件需要重建等等。编译整个工程需要涉及到的,在 Makefile 中都可以进行描述。换句话说,Makefile 可以使得我们的项目工程的编译变得自动化,不需要每次都手动输入一堆源文件和参数。
(1)编译的时候需要链接库,编译的时候gcc只会默认链接一些基本的C语言标准库,很多源文件依赖的标准库都需要手动链接。将要链接的库文件放在makefile中,制定相应的规则和对应的链接顺序。这样只需要执行make命令,工程就会自动编译。每次想要编译工程的时候就执行make,省略手动编译中的参数选项和命令。
(2)编译大的工程会花费很长的时间,makefile支持多线程并发操作,会极大的缩短编译时间,并且当我们修改了源文件之后,编译整个工程的时候,make命令只会编译修改过的文件,没有修改的文件不用重新编译。