【发布时间】:2012-05-13 04:36:30
【问题描述】:
在以下网站 http://make.paulandlesley.org/vpath.html
作者说:
VPATH 旨在查找源,而不是目标。
但在 GNU make 的手册中,它说:
make 变量 VPATH 的值指定了一个目录列表 那make应该搜索。大多数情况下,目录应该 包含不在当前目录中的必备文件; 但是,make 使用 VPATH 作为先决条件和 规则的目标。
这是什么意思?
【问题讨论】:
在以下网站 http://make.paulandlesley.org/vpath.html
作者说:
VPATH 旨在查找源,而不是目标。
但在 GNU make 的手册中,它说:
make 变量 VPATH 的值指定了一个目录列表 那make应该搜索。大多数情况下,目录应该 包含不在当前目录中的必备文件; 但是,make 使用 VPATH 作为先决条件和 规则的目标。
这是什么意思?
【问题讨论】:
这正是它所说的意思。 make 将寻找构建某些东西所需的东西和已经构建的东西以查看它是否需要重建。
一个典型的场景是,如果您在链接或创建存档之前使用放置目标文件的临时构建目录。然后你想让make 也去那里看看需要重建什么。
【讨论】:
make 要么使用它来搜索目标,要么不使用它。据我所知,确实如此。在这种情况下,“不好”是什么意思?我已经在我自己的 makefile 中使用了 VPATH,它工作得很好。
GNU Make 手册说您可以使用 VPATH 来查找目标。 Paul Smith 是说您通常不应该。 (无论 VPATH 最初是否是 为此目的而设计的没有实际意义。)
以这种方式使用 VPATH 会导致问题有几个原因(没有一个是该死的),但paulandlesley 的页面专门讨论了天真地使用 VPATH 在远程位置构建目标(这不起作用) ,在多架构构建的上下文中。
【讨论】: