我们可以连续地使用vpath语句,以指定不同搜索策略。如果连续的vpath语句中出现了相同的< pattern>,或是被重复了的< pattern>,那么,make会按照vpath语句的先后顺序来执行搜索。如: vpath %.c foo vpath % blish vpath %.c bar 其表示“.c”结尾的文件,先在“foo”目录,然后是“blish”,最后是“bar”目录。
使用 VPATH 的情况是前路径下的文件较少,或者是搜索的文件不能使用通配符表示,这些情况下使用VPATH最好。如果存在某个路径的文件特别的多或者是可以使用通配符表示的时候,就不建议使用 VPATH 这种方法,为什么呢?因为 VPATH 在去搜索文件的时没有限制条件,所以它回去检索这个目录下的所有文件,每一个文件都会进行对比,...
在makefile当中,我们可以使用VAPTH指定make去搜索文件的路径。我们先来测试一下当我们没有使用VPATH的时候指定其他目录下的文件会出现什么情况,我们的文件目录结构如下图所示: 我们的makefile内容如下(先把VPATH的那一行注释掉): cflags=-c # VPATH=./files main: demo.o myprint.o a.o b.o gcc demo.o my...
总的来说,vpath指令是makefile中一个非常有用的功能,它可以帮助我们更好地管理代码的依赖关系,提高工作效率。通过灵活地设置文件搜索路径,我们可以让make命令更快速、更准确地查找依赖文件,避免不必要的错误。因此,在编写makefile时,不妨考虑使用vpath指令,让开发工作变得更加轻松和高效。
Makefile文件中的特殊变量“VPATH”就是完成这个功能的,如果没有指明这个变量,make只会在当前的目录中去找寻依赖文件和目标文件。如果定义了这个变量,那么,make就会在当当前目录找不到的情况下,到所指定的目录中去找寻文件了。 VPATH = src:../headers
四、VPATH 的用法 1、Makefile的VPATH VPATH :虚路径 — 在一些大的工程中,有大量的源文件,我们通常的做法时把这许多的源文件分类,并存放在不同的目录中。所有,当make需要区找寻文件的依赖关系时,你可以在文件前加上路径,但最好的方法是把一个路径告诉make,让make在自动去找。
事实上,执行编译的过程是makefile的规则中的命令部分,这一部分是由shell进行解析的,-I 其实是shell下gcc的编译指令。通常,用法是这样的: -I. -I../dir/ 除了使用gcc的参数"-I",我们还可以使用makefile中自带的变量"VPATH",通过环境变量"VPATH"指定的目录会被make添加到目录搜索中。
Makefile 里 VPATH 与 vpath 的用法可以参考<<跟我一起写Makefile>>,讲的很详细。 此处记录我在实际使用 VPATH 与 vpath 时遇见的问题。 我用了一个小 demo 来使用 VPATH,目录结构如下: tmp ├── inc │ └── sub.h ├── makefile
具体用法: vpath PATTERN DIRECTORIES vpath PATTERN //清除符合PATTERN的搜索目录 vpath //清除所有已被设置的文件搜索路径 PATTERN:为要寻找的条件 DIRECTORIES:寻找的路径 (4)条件判断 【ifeq】判断参数是否相等,相等为 true,不相等为 false 【ifneq】判断参数是否不相等,不相等为 true,相等为 false ...
其实“VPATH”变量所指定的是Makefile中所有文件的搜索路径,包括了规则的依赖文件和目标文件 用法如下:使用空格或冒号":"将多个需要搜索的目录分开 VPATH = src:../headers 这样搜索目录就是"src"和"../headers" 4.2 选择性搜索(关键字vpath) 还有一种搜索是使用make的关键字"vpath",这是一个关键字,它有三种...