文章目录
- 背景
- 方法:wildcard
- 补充信息
- wildcard解释
- Make中wildcard用法
背景
工程中,如果某个代码需要再不同平台有不同的依赖头文件,于是会出现不同平台依赖头文件路径不一样,但是为了适配多个平台如何做到避免某个头文件路径不存在造成CLFAGS添加后编译报错?
方法:wildcard
在Makefile中使用wildcard将路径剥离后查看是否为空,
ifeq ($(wildcard /path/to/directory),) #不存在
$(info Directory does not exist)
else
$(info Directory exists)
CLFAGS = -I/path/to/directory
endif
补充信息
wildcard解释
Make中wildcard用法
在 Makefile 中,wildcard 函数是一个内置的函数,它用于生成一个文件名列表
。这个函数通常用于创建一个目标或一个模式规则中所有匹配指定模式的文件列表。
语法:
$(wildcard xxx)
参数:
xxx:一个或多个文件名模式,可以包含通配符 * 和 ?。
返回值:
返回一个字符串,包含所有匹配指定模式的文件名列表,文件名之间由空格分隔。
示例:
假设你有一个目录结构如下:
src/
|-- main.c
|-- utils.c
|-- read.c
使用 wildcard 函数来生成 src/ 目录下所有 .c 文件的列表:(类似一个find *.xxx的工具,通配)
SRC := $(wildcard src/*.c)
SRC输出:
src/main.c src/utils.c src/read.c
注意点:
- wildcard 函数只匹配当前目录和子目录中的文件,不会递归。