编写一个可完成简单功能的makefile
编写一个可完成简单功能的makefile,需要考虑以下几个部分:
1. 文件命名:makefile的文件名通常为makefile或Makefile,建议使用小写命名。
2. 规则格式:makefile的规则格式为:目标,依赖,命令。第一行为目标和依赖,第二行为命令,命令前需要有tab缩进。
例如:
app: main.o add.o sub.o
tab键 gcc -o app main.o add.o sub.o

3. 依赖关系:makefile会根据依赖关系自动判断哪些文件需要重新编译。当一个文件被修改后,makefile会重新编译所有依赖于该文件的其他文件。
例如,如果有两个文件sub和add需要编译,可以将它们的依赖设置为.o文件。这样,当修改了其中一个文件后,makefile会自动重新编译对应的.o文件,从而避免重复编译。
4. 变量使用:makefile支持使用变量来简化编写。例如,可以使用$@代表目标,$^代表全部依赖,$<代表第一个依赖,$?代表第一个变化的依赖。这些变量可以在规则中出现。
例如,可以将app的依赖设置为main.o, add.o, sub.o,然后使用gcc命令编译这些依赖文件,生成app可执行文件。具体编写如下:
app: main.o add.o sub.o
gcc -o app $^
需要注意的是,生成终极目标的规则一定要写在最上面。