GNU Make 目录搜索
程序员文章站
2022-07-14 15:25:14
...
一般搜索
Makefile 的 VPATH
变量用来扩展文件的搜索路径。它是一个冒号分离的目录列表。Make 会依次尝试在每个目录下查找文件。
VPATH := src:include
CXXFLAGS := -Iinclude
main: main.cc util.h
上面的 Makefile 可以编译下面的事例项目。
.
├── include
│ └── util.h
├── Makefile
└── src
└── main.cc
扩展出命令:g++ -Iinclude src/main.cc include/util.h -o main
。
选择性搜索
vpath
关键字可以控制一类文件使用某种特定的搜索方式。它有三个种使用方法:
vpath PATTERN VPATH_LIKE_PATHS
设定PATTERN
这类文件使用VPATH_LIKE_PATHS
指定的搜索目录。vpath PATTERN
清除PATTERN
这类文件(用vpath
关键字)指定过的搜索目录。vpath
清除所有搜索目录。
其中的 PATTERN
使用 Makefile 惯用的通配符语法,用 %
代表一个或多个字符。
最典型的用法是 vpath %.h include
,指定所有的头文件还可以在 include
目录下找。上述例子还可以用以下 Makefile 编译:
CXXFLAGS := -Iinclude
vpath %.h include
vpath %.cc src
main: main.cc util.h