第18课 - make 中的路径搜索(下)

本文详细探讨了在makefile中VPATH和vpath的使用,包括两者同时存在时的选择策略,处理多个vpath下相同文件的方法,目标文件的生成位置选择,并给出了避免常见问题的总结和建议。
摘要由CSDN通过智能技术生成

1. VPATH 和 vpath 同时存在如何选择

文件结构:

在这里插入图片描述

VPATH := src1
CFLAGS := -I inc

vpath %.c src2
vpath %.h inc

app.out : func.o main.o
	@gcc -o $@ $^
	@echo "Target File ==> $@"
%.o : %.c func.h
	@gcc $(CFLAGS) -o $@ -c $<

实验结果:

- make 首先在当前文件夹搜索需要的文件
-如果失败:
	make 优先在 vpath 指定的文件夹中搜索目标文件
	当 vpath 搜索失败时,转而搜素 VPATH 指定的文件夹

文件结构改变:

文件结构改变:当src1 和 src2 下面只有 func.cpp 文件,那么这个makefile会正常运行吗?
不会正常运行,会报找不到 func.h 的错误,那么为什么会找不到func.h呢?因为会触发隐式规则,在使用 func.cpp生成 func.o 时发现找不到 func.h,因为指定搜索路径只是针对make,在隐式规则下的gcc命令并没有指定 -I参数 
</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值