make 学习笔记一

make 是一种依赖关系检查工具。当你的项目有很多的object 的时候,使用它可以带给你很多的便利。

makefile的结构和make的运作流程

1)# 用“#”来表示注释

2)target: dependecies

#command 前面需要加个Tab缩进

command1

command2

...

#可以用‘\’来续行

target 是我们需要生成的文件的名字。target摆放的顺序并不重要,make 不带参数的时候默认执行第一个target。target也可以使make所需完成的动作,比如使用比较多的clean

dependencies 是生成target所需要的文件列表,也可以为空,就比如上面讲的clean。

command 可以是任意一条shell可以执行的命令。

example1:

demo: main.o fun.o
	gcc -o demo main.o fun.o
main.o: main.c def.h
	gcc -c main.c
fun.o: fun.c common.h
	gcc -c fun.c
clean:
	rm -rf *.o demo
install:
	mv demo /user/local
当我们输入make 或者 make demo的时候,如果没有main.o 和fun.o 被修改,都会执行

gcc -o demo main.o fun.o
接下来由于引用到main.o和fun.o 会检查这两个依赖的文件是否被跟新。 如果有,则执行gcc -c main.c. test.o 也是如此。

第一次执行顺序:

gcc -c main.c
gcc -c fun.c
gcc -o demo main.o fun.o
第二次如果func.c 被跟新 则:

gcc -c fun.c
gcc -o demo main.o fun.o


Makefile 还可以使用宏

makefile 里面宏可以用“=”来定义,用$ 来取宏的值

OBJS = main.o test.o
PATH = /user/local
demo: $(OBJS)
	gcc -o demo main.o fun.o
main.o: main.c def.h
	gcc -c main.c
fun.o: fun.c common.h
	gcc -c fun.c
clean:
	rm -rf *.o demo
install:
	mv demo $(PATH)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值