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如何处理
当使用vpath对同一个模式指定多个文件夹时,make会如何处理
通过VPATH指定搜索路径后,make目标文件位置如何决定
本文为狄泰软件学院课程学习笔记