欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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 关键字可以控制一类文件使用某种特定的搜索方式。它有三个种使用方法:

  1. vpath PATTERN VPATH_LIKE_PATHS
    设定 PATTERN 这类文件使用 VPATH_LIKE_PATHS 指定的搜索目录。

  2. vpath PATTERN
    清除 PATTERN 这类文件(用 vpath 关键字)指定过的搜索目录。

  3. vpath
    清除所有搜索目录。

其中的 PATTERN 使用 Makefile 惯用的通配符语法,用 % 代表一个或多个字符。

最典型的用法是 vpath %.h include,指定所有的头文件还可以在 include 目录下找。上述例子还可以用以下 Makefile 编译:

CXXFLAGS := -Iinclude

vpath %.h include
vpath %.cc src

main: main.cc util.h