欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

make中VPATH与vpath的区别

程序员文章站 2022-05-13 15:08:51
...

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 aaa@qq.com $^
	@echo "Target File ==> aaa@qq.com"
	
$(OBJS) : %.o : %.c func.h
	@gcc $(CFLAGS) -o aaa@qq.com -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 aaa@qq.com $^
	@echo "Target File ==> aaa@qq.com"
	
# vpath %.h   用于取消已经设置的规则,这里的功能为取消在inc文件夹里面查找.h文件,如果没有%.h,就是取消所有规则

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

容易混淆的问题

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

make中VPATH与vpath的区别

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

make中VPATH与vpath的区别

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

make中VPATH与vpath的区别
make中VPATH与vpath的区别

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

相关标签: make