make 增量编译的原理
make是一个工具,它可以根据依赖关系和时间戳来自动执行编译命令。
当您修改了源代码文件后,make会检查它们的修改时间是否比目标文件(如可执行文件或目标文件)新,如果是,就会重新编译它们。
但是,这需要您在makefile中指定源代码文件和目标文件之间的依赖关系。
目标文件:依赖文件
命令1
命令2
...
命令n
例如,如果您有一个名为main.c的源代码文件,您想编译成一个名为main的可执行文件,您可以在makefile中写下这样的规则:
main:main.c
gcc main.c -o main
这样,当您修改了main.c后,只要运行make命令,就会自动执行gcc main.c -o main来重新编译main。
如果您还有其他的源代码文件或头文件,也要加入到依赖文件中,以保证它们被修改后也能触发重新编译。
例如,如果您还有一个名为add.c的源代码文件和一个名为add.h的头文件,您可以在makefile中写下这样的规则:
main:main.c add.c add.h
gcc main.c add.c -o main
这样,无论修改了哪个文件,都会重新编译main。
[1] https://zhuanlan.zhihu.com/p/92010728
[2] https://zhuanlan.zhihu.com/p/92010728