构建工具与流程全解析
1. 路径搜索与编译规则
在编译过程中,我们常常需要指定源文件的路径。VPATH 变量可以帮助我们简化这一过程。例如:
VPATH=../src
foo: foo.c
$(CC) -o $@ $^
VPATH 表明 make 不仅会在当前目录,还会在 ../src 目录中搜索目标和先决条件。当 foo.c 作为先决条件出现时,无需指定其位置,make 会自动替换为正确的路径。假设 foo.c 位于 ../src 目录,执行 make 命令的输出如下:
$ make
gcc -o foo ../src/foo.c
不过,如果当前目录中也有 foo.c 的副本,make 会优先选择当前目录中的文件,这可能会带来问题,因为 make 总是先搜索当前工作目录。
GNU make 还提供了 vpath 指令来扩展 VPATH 的功能。通过 vpath 指令,可以指定文件名模式,使 make 仅在特定目录中搜索特定类型的文件。例如:
vpath %.cpp ./cxxsrc
vpath %.c ./csrc
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



