Make基础知识点科普

这里科普一下关于make的一些基础知识。

Makefile规则?

target:prerequisites
command

其中target为目标文件,prerequisites为生成目标文件所需要的依赖文件,command是make需要执行的命令;

  • 注1:make并不管命令是怎么工作的,他只管执行所定义的命令;make会比较target和prerequisites文件的修改日期,如果prerequisites的日期新,则更新target;
  • 注2:clean不是一个文件,而是一个动作,冒号后面什么都没有,make就不会自动去找文件的依赖性,也就不会自动执行其后所定义的命令。所以要执行,就需要在make命令后显示的定义clean(make clean)
  • 注3:command是一般是以[TAB]开头的

Make工作原理?

1.make会去寻找当前目录下的makefile文件;
2.如果找到,make会找文件中第一个target,并把它作为最终的目标文件;
3.如果target一开始并不存在,或者target后面的prerequisites有更新,那么就会执行后面的命令生成target;
4.make会根据依赖性先生成.o文件,然后再用.o文件生成最终的target

Makefile中使用变量?

因为target后面依赖的.o非常多,如果修改一个位置的.o,就需要更改很多位置,如果忘记一个需要更改的地方,就会导致编译失败。所以为了使makefile容易维护,在makefile中使用变量,如:
objects = xxx1.o xxx2.o … xxxn.o (objects := $(wildcard *.o))

make自动推导?

只要make看到一个xxx.o,那么xxx.c就会是xxx.o的依赖文件,同时cc -c xxx.c命令也会被推导出来。

clean使用?

.PHONY : clean
clean :
-rm target $(objects)
.PHONY表示clean是一个伪目标;而在rm命令前面加了一个“-”表示就算某些文件有问题,仍然继续执行。

Makefile五要素?

显示规则,隐式规则,变量定义,文件指示,注释

指定Makefile名称?

如果使用别的名称而不是“makefile”&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值