makefile学习

这是一个makefile文件

hello: main.o func1.o func2.o
	gcc main.o func1.o func2.o -o hello
main.o : main.c
	gcc –c main.c
func1.o : func1.c
	gcc –c func1.c
func2.o : func2.c
	gcc –c func2.c
.PHONY : clean
clean :
	rm –f hello main.o func1.o func2.o

makefile文件中一般存在很多的目标。但是第一个目标一般默认为是最终的目标。其它的目标都认为是中间目标。

hello: main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
这条语句中hello为目标,main.o func1.o func2.o为依赖文件,gcc main.o func1.o func2.o -o hello为执行语句
执行语句必须以TAB开头


.PHONY:clean  为伪目标,它只有执行动作,没有依赖目标,


执行make命令时,默认会在当前目录下找到makefile或者Makefile文件,也可以使用命令make -f filename 来指定名字不为makefile或Makefile的组织文件。


makefile中可以使用变量

比如

hellomain.o func1.o func2.o
gcc main.o func1.o func2.o -o hello

可以用下面带变量的语句替换
obj = main.o func1.o func2.o
hello: $(obj)
gcc $(obj) -o hello


makefile中存在系统默认的一些系统变量

比如:$^:代表目标的所有依赖文件
           $ @:代表目标
           $<:代表第一个依赖文件
举例

hellomain.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
可以用下面带变量的语句替换
hello: main.o func1.o func2.o
gcc $^ -o $ @
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值