Linux下的Makefile的构建_gcc

未更新完会持续更新(这是我的学习笔记)
Makefile简介
在这里插入图片描述

makefile总览
Makefile的本质:无论多么复杂的语法,都是为了更好地解决项目文件之间的依赖关系。

1.Makefile的变量、模式匹配

变量

系统变量
自定义变量
=,延迟赋值
:=, 立即赋值
?=,空赋值
+=,追加赋值
自动化变量
$<:第一个依赖文件
$^:全部的依赖文件
$@:目标

模式匹配

%:匹配任意多个非空字符
shell:*通配符

默认规则

.o文件默认使用.c文件来进行编译
CC=gcc
TARGET=mp3
OBJS=main.o mp3.o

$(TARGET):$(OBJS)
	$(CC) $^ -o $@
#main.o:
#	$(CC) -c main.c -o main.o
#mp3.o:
#	$(CC) -c mp3.c -o mp3.o
%.o:%.c
	$(CC) -c $< -o $@

.PHONY:clean 
clean:
	rm mp3 mp3.o main.o

2.Makefile条件分支

条件分支

ifeq (var1,var2)
...
else
...
endif
ifneq (var1,var2)
...
else
...
endif

makefile:

ARCH ?= X86

ifeq ($(ARCH),x86)
	CC=gcc
else 
	CC=arm-linux-gnueabihf-gcc
endif

3.Makefile的常用函数

(1)patsubst:模式替换函数 $(patsubst %.c , %.o, x.c.c bar.c)
(2)notdir:取文件名函数 $(notdir src/foo.c hacks)
(3)wildcard:获取匹配模式文件名函数(列出当前目录下所有符合模式“PATTERN”格式的文件名) $(wildcard *.c)
(4)foreach:遍历文件夹

在这里插入图片描述
在这里插入图片描述

整体makefile实现函数
在这里插入图片描述

4.makefile解决头文件依赖

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值