0

这是一个 GNU Make 依赖解决问题。

我的问题是我将源文件从远程文件服务器复制到暂存盘(这将构建过程加快了 50%)。如果文件复制失败,我想使用文件服务器中的源文件,否则我想从暂存盘中读取它们。

我曾尝试使用 vpath 机制,但问题是,据我了解,make 默认会开始在当前目录中查找源文件,并且只有在无法找到那里的文件时,才查看目录与 vpath 一起列出。

在查看当前目录之前,是否可以先查看 vpath 目录?或者也许只查看 vpath 目录(并显式动态地将当前目录添加到 vpath)?

我能想到的唯一方法是临时更改目录,以便 make 始终无法找到源文件。

4

1 回答 1

0

查看服务器上源目录的路径。假设它是“/server/someplace/src/”。并且假设您在当前目录中没有“src”目录(如果有,我们只需要调整这个方法)。只需确保暂存盘上源目录的路径以“/src/”结尾,例如“/scratch/wednesday/src/”。然后你可以这样做:

SCRATCH_PATH = /scratch/wednesday/
SERVER_PATH = /server/someplace/

VPATH = $(SCRATCH_PATH) $(SERVER_PATH)

%.o: src/%.cc
    $(CC) blah blah blah
于 2011-04-27T16:39:50.980 回答