make命令的选项和参数(l4,318),这个网上都有,一点不难,这篇重点在于makefile文件的书写
makefile文件必不可少
makefile语法
makefile文件由一组依赖关系和规则构成。
每个依赖关系由一个目标(即将要创建的文件)和该目标所依赖源文件组成。
规则描述了如何通过这些依赖文件创建目标
依赖关系
make命令会根据makefile文件来确定目标文件的创建顺序以及正确的规则调用顺序
myapp: main.o 2.o 3.o//表示myapp依赖于main.o 2.o 3.o依次往下,main.o依赖于main.c a.h等等
main.o: main.c a.h
2.o: 2.c a.h b.h
3.o: 3.c b.h c.h
一次创建多个,就可以利用伪目标all,假设应用程序由myapp使用手册myqpp.1组成
all: myqpp myapp.1
若是未定义一个目标,则make命令将只它在makefile中找到的第一个目标
规则
makefile文件的第二部分内容就是规则
注意!!!
在makefile文件中空格和制表符tab是有区别的,规则所在行必须以制表符tab开头,用空格是不行的
makefile中行也不能够以空格结尾,这也有可能导致make命令执行失败
例子
myapp: main.o 2.o 3.o
gcc -o myapp main.o 2.o 3.o
main.o: main.c a.h
gcc -c main.c
2.o: 2.c a.h b.h
gcc -c 2.c
3.o: 3.c b.h c.h
gcc -c 3.c
make命令非常智能化,当你改变makefile中的文件时,make命令会通过读取makefile文件,确定重建myapp所需的最少命令,并以正确的顺序执行它们。
makefile文件中的注释以#号开头
宏的使用
CC=gcc
(CC) -o myapp main.o 2.o 3.o
关于make的学习就先到这里,因为目前而言对我的项目是够用了,剩下一些高级的用法现在也还没到我用的时候,希望我的总结对大家有所帮助