Makefile学习笔记-野火网课

makefile学习笔记

三要素:

目标、依赖、命令

目标:依赖的文件或其他目标

<tab>命令1

<tab>命令2

<tab>命令3

Make+target* ->单独执行某个目标

 

当创建了目标文件targetb的时候 make命令会先寻找对应的目标文件进行执行且如果目标文件不更新则不会执行

需要使用.PHONY:目标

告诉make脚本该目标为伪目标文件才能继续执行

 

 

用Makefile管理编译工程

Makefile的变量

系统变量

自定义变量

自动化变量

自定义变量

= 延迟赋值

 当B的时候才赋值所以输出的是456

:=立即赋值

 

?= 空赋值

当变量没有赋值的时候才可以赋值所以是123

+= 追加赋值在原来的值后面追加新赋值

自动化变量

$< :第一个依赖文件

打印出了第一个依赖文件的名字

$^:全部的依赖文件

 

$@:目标文件

 

Mp3:main.o mp3.o 这里mp3是目标文件 main.o 和mp3.o是依赖文件

$@ 表示目标文件 $^ 表示所有的依赖文件

所以可以改写成 $^ -o $@

模式匹配

%匹配任意多个非空字符

类似于shell:*通配符

在Makfile里面所有的.o文件都是由对应的.c文件来进行编译的

条件分支

Ifeq (var1,var2)

......

else

......

endif

Ifneq (var1,var2)

......

else

......

endif

关键词后面要有空格

解决Makefilearm-linux-gcc :command not found

 

注意在编译的时候需要删除由gcc编译的.o文件让arm-gcc重新编译不然会报错

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值