makefile中判断文件是否存在的几种方法_makefile 判断文件是否存在

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

if [ -e  FILE ]; then …; fi

注:文件表达式
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真 
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真 
-w filename 如果 filename可写,则为真 
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真

2、使用makefile的wildcard函数

ifneq ($(wildcard FILE,)
    #文件存在
endif

$(wildcard FILE)的意思是当前路径下的FILE文件匹配的文件展开。
假设当前路径下存在a.c 和 b.c,那么执行src=$(wildcard *.c),src的值就为a.c b.c;
如果不使用通配符,比如src=$(wildcard c.c);那么就是要展开当前路径下,文件名为c.c的文件,因为当前路径下文件不存在,因此src为空字符串。

实例1:

分别使用上述两种方法判断obj文件夹下depend.mk文件是否存在,存在的话创建a.c和b.c文件。

编写的makefile如下:

OBJ_DIR=obj
fileNames = $(wildcard $(OBJ_DIR)/depend.mk)

all:
	@echo "this is all "
	@echo ${fileNames}
	@if [ -e $(OBJ_DIR)/depend.mk ]; then touch b.c; fi


ifneq ($(wildcard $(OBJ_DIR)/depend.mk),)
	touch a.c
endif

执行完后,成功创建了a.c和b.c。

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值