makefile简单的使用

1命名   

 makefile或者Makefile 可以被系统识别

 2规则

规则的3要素
1)目标,依赖,命令

目标 :依赖
[TAB] 编译命令

只执行第一行目标,需要的依赖在后续规则中先执行。
app:a.o b.o
    gcc a.o b.o -o app            //根据目标文件来编译可执行文件,就不需每次重新编译c文件
a.o:a.c
    gcc -c a.c
b.o :b.c
    gcc -c b.c
2)makefile中的变量

CC = gcc

CFLAGS = -I
obj = a.o b.o
target=app                          //  自定义变量  #表注释符
$(target):$(obj)                    //使用变量代替,变量没有类型的
    gcc $(obj) -o $(target)         
%.o:%.c                              //%表示通配符
   $(CC) -c $< -o $@              //自动变量  $<规则中的第一个依赖   $@规则中的目标   $^规则中所有依赖


一些makefile维护的系统的变量   一般是大写

CC = gcc
CFLAGS:预处理器需要的选项 如 -I (头文件目录)`
LDFLAGS :编译时使用的的参数 如 -Wall(警告信息)-g(调试信息)-c (生成.o文件)

3)makefile中的函数
makefile中的所有函数都有返回值
src = $(wildcard  ./*.c)  //wildcard 获取指定目录下文件,参数在函数名后面,返回值 $引用赋值给src


obj = $(patsubst ./%.o, ./%.c, $(src))  //patsubst 从src中取出*.c 替换成*.o,返回值 再$ 赋值给obj


4)声明伪目标
.PHONY:clean     //声明伪目标后,make就不会比较目标的更新时间,仍要执行下面的命令


5)命令前加 - ,命令执行失败就忽略,继续向下执行,否则会停止makefile
clean:
   -mkdir /aa       //在根目录下创建aa文件夹,普通用户权限不够,make clean时会失败,加- 后会忽略跳过。 
   -rm *.o app     //(rm -f  强制执行)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值