make中VPATH与vpath的区别

VPATH

VPATH用于指定make如何查找文件

用法

VPATH := 文件夹名1,文件夹名2 #分隔符可用逗号,空格和分号

具体代码实现

OBJS := func.o main.o
INC := inc       #存放.c的文件夹
SRC := src       #存放.h的文件夹
VPATH := $(INC) $(SRC)
CFLAGS := -I $(INC)

hello.out : $(OBJS)
	@gcc -o $@ $^
	@echo "Target File ==> $@"
	
$(OBJS) : %.o : %.c func.h
	@gcc $(CFLAGS) -o $@ -c $<     #(gcc -I 文件夹) 用于指定gcc的头文件搜索路径
                                               #因为VPATH只能决定make的搜索路径

vpath

用于为不同的文件指定不同的搜索路劲,防止文件不同文件夹下出现同名情况

用法

vpath %.c inc #%.c代表文件类型 inc代表文件夹名称

具体代码实现

OBJS := func.o main.o
INC := inc
SRC := src
CFLAGS := -I $(INC)

vpath %.h $(INC)
vpath %.c $(SRC)

hello.out : $(OBJS)
	@gcc -o $@ $^
	@echo "Target File ==> $@"
	
# vpath %.h   用于取消已经设置的规则,这里的功能为取消在inc文件夹里面查找.h文件,如果没有%.h,就是取消所有规则

$(OBJS) : %.o : %.c func.h
	@gcc $(CFLAGS) -o $@ -c $<

容易混淆的问题

当VPATH和vpath同时出现时,make如何处理

在这里插入图片描述

当使用vpath对同一个模式指定多个文件夹时,make会如何处理

在这里插入图片描述

通过VPATH指定搜索路径后,make目标文件位置如何决定

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

本文为狄泰软件学院课程学习笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值