0.缘由
多文件编程
主文件(main函数所在的文件)往往只包含一些函数的调用。结构体的定义,函数的实现通常在不同的文件中,这时就需要主文件包含一些头文件,标准c库的头文件不用多说,如果是自己定义了头文件,函数的实现过程放到对应的.c文件中,这时候想要编译生成可执行文件,必须和对应头文件的.c文件一起编译。后期如果修改某些文件,还要全部编译,不利于维护。
1.概述
通常来说,一个工程中的源文件有很多。而往往按类型、功能、模块分别放在对应的目录中,Makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 Makefile就像一个Shell脚本一样,也可以执行操作系统的命令。
2.优点
(1)工程中大量代码的关系维护
大的工程中源代码比较多,手工维护、编译时间长而且编译命令复杂,难以记忆及维护。把代码维护命令及编译命令写在Makefile文件中,然后用make工具解析此文件自动执行相应命令,实现代码的合理编译。
(2)减少重复编译时间
使用make编译过一次程序后,会记录每一个文件的时间戳,当修改某些文件后,再次使用make工具编译时,只会编译修改过时间戳的文件,相比较于gcc编译节省了大量的时间,另外,make可以有选择性的对指定的文件进