使用makefile时自动寻找文件夹下的所有include文件夹并添加为包含文件
时间: 2024-11-23 21:41:09 浏览: 15
Linux C++ 实现文件夹或文件拷贝(可直接编译运行)
Makefile是一个自动化构建工具,在Linux和Unix-like系统中广泛用于管理和编译项目。当你需要让Makefile自动搜索特定目录下的`*.h`(头文件)或其他需要包含的文件时,可以使用变量`VPATH`(Value Path)或`$(wildcard)`函数。
1. **设置VPATH**:
在Makefile的顶部添加`VPATH = include`, 这样Make就会在指定的`include`目录下搜索`.h`文件。然后在`CCFLAGS`(编译器选项)中加入`-I`前缀的路径,例如`-I$(VPATH)`, 它告诉编译器在指定的VPATH下找包含文件。
2. **使用wildcard函数**:
Makefile内置的`$(wildcard)`函数可以列出给定模式匹配的文件名,如`$(wildcard include/*.h)`。这会返回`include`目录下所有`.h`文件的列表,你可以将这个结果插入到`CCFLAGS`或类似变量中。
在编写规则时,确保像下面这样引用包含文件:
```makefile
%.o: %.c $(wildcard include/*.h)
gcc -c $< -Iinclude -o $@
```
这里,`%.o`代表目标文件,`%.c`代表对应的源文件,`$(wildcard include/*.h)`作为依赖项自动处理包含了所需的头文件。
阅读全文