MakeFile学习笔记

关于Makefile学习的相关知识


一、Makefile内容

一个完整的Makefile中包含了五种内容,显示规则、隐含规则、变量定义、指示符和注释。默认情况下make会在工作目录下

A:显示规则:在任何情况下如何更新一个或者多个被称为目标的文件
隐含规则:根据make根据一类目标文件(典型的是根据文件名的后缀)而自动推导出来的规则,Make根据目标文件的名,自动产生目标的B:以来文件并使用默认的命令来对目标进行更新(建立一个规则)
C:变量定义:使用一个字符或者字符串代表一段文本串,当定义了一个变量后,Makefile后续在需要使用此文本串的地方,通过引用这个变量来实现对文本串的使用
D:指示符:指示符指明在make程序读取makefile文件过程中所要执行的一个动作
E:注释:Makefile中“#”字符后的内容被作为是注释内容

二、Makefile文件包含

Makefile中包含其他文件使用的关键字是include
例如:include FILENAMES…

三、变量

变量的名称可以由大小写字母、阿拉伯数字和下划线构成
变量在声明时需要给予初值,在使用时,需要在变量名前加上$符号,但最好用小括号()或者大括号{}将变量给包括起来
变量的名称=值列表

OBJ=main.o test.o
test:$(OBJ)
gcc -o test $(OBJ)

四、变量种类

1、环境变量及作用

普通变量是局部变量,只能在当前文件中使用,环境变量可以在工程中所有Makefile之间使用,是全局变量

	CC = arm-linux-gcc
	LD = arm-linux-ld
	export CC LD

2、自动化变量

$@ 代表目标文件的完整名称
$^ 代表所有不重复的以来文件,以空格分开
$< 代表第一个依赖文件的名称
$* 不包含扩展名的目标文件名称
$+ 所有的依赖文件,以空格分开,并以出现的先后为序,重复的依赖文件
$? 所有时间戳比目标文件晚的依赖文件
$% 如果目标是归档成员,则该变量表示目标的归档成员名称

%.o:%.s
   arm-linux-gcc -o $@   $<  -c
 %.o:%.c
   arm-linux-gcc -o $@   $<  -c

上面的%.o是目标,%.s和%.c是依赖, @ 代表目标 @代表目标%.o, @代表目标<代表%.s和%.c;参数-o指点文件名字;-c是只编译不链接;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值