Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile 设置其他生成文件的包含路径_Makefile - Fatal编程技术网

Makefile 设置其他生成文件的包含路径

Makefile 设置其他生成文件的包含路径,makefile,Makefile,发件人: 如果指定的名称不是以斜杠开头,并且文件不是 在当前目录中可以找到其他几个目录 搜索。首先,使用“-I”或指定的任何目录 搜索“--include dir”选项(请参见选项摘要)。然后 将按以下顺序搜索以下目录(如果存在): 前缀/包含(通常为/usr/local/include 1)/usr/gnu/include, /usr/local/include,/usr/include 那么,有没有一种方法可以设置makefile的include路径,其他makefile都是从该路径中包含的

发件人:

如果指定的名称不是以斜杠开头,并且文件不是 在当前目录中可以找到其他几个目录 搜索。首先,使用“-I”或指定的任何目录 搜索“--include dir”选项(请参见选项摘要)。然后 将按以下顺序搜索以下目录(如果存在): 前缀/包含(通常为/usr/local/include 1)/usr/gnu/include, /usr/local/include,/usr/include

那么,有没有一种方法可以设置makefile的include路径,其他makefile都是从该路径中包含的


我不希望每次调用make时都必须传递
--include dir

理论上,您应该能够将这些标志添加到makefile本身的
MAKEFLAGS
变量中

发件人:

如果希望在每次运行
make
时设置某些选项,例如“
-k
”(请参阅选项摘要),则
MAKEFLAGS
变量也很有用。只需在环境中为
MAKEFLAGS
添加一个值。您还可以在makefile中设置
MAKEFLAGS
,以指定也应对该makefile生效的其他标志。(请注意,不能以这种方式使用
MFLAGS
。该变量仅为兼容性而设置;make不会以任何方式解释为其设置的值。)

但是一个快速的测试似乎表明这实际上不起作用

我认为
VPATH
/
VPATH
可能在这里有用,但一些快速测试似乎表明它不有用

这就意味着,据我所知,如果您不想在命令行上手动指定它们,那么每次运行时您都需要使用shell脚本/函数/等来处理添加它们的操作


尽管最后一个快速测试似乎表明,尽管文件设置
MAKEFLAGS
不起作用,环境变量route仍然起作用。因此,您可以在环境中设置
MAKEFLAGS
,并且make应该正确地使用它。

好的,我将使用MAKEFLAGS玩一会儿,看看是否可以使用它。vpath用于头包含,而不是makefiles包含。感谢
vpath
是“先决条件”。由于make试图构建makefiles,因此认为make可能会使用它是一个不太可能的想法。您可以让它与
%.mk:%.mk;cp$^$@
规则也在makefile中,但我没有尝试。在makefile中设置
MAKEFLAGS
将不起作用,因为对
MAKEFLAGS
值的更改只有在读入所有makefiles后才会解析,而不是每次设置
MAKEFLAGS
变量时。当make解析所有makefile时,添加新的include目录显然没有帮助。@madscitist我想可能是这样的。我还认为make可能会在“查看它们是否可以构建”阶段再次尝试修改路径,但显然这不会发生,我不确定是否应该。vpath工作(或为此指定的指令)可能是处理此问题的好方法(尽管如果
%.mk:%.mk
复制目标在大多数情况下都可以工作)。是的,实现此增强功能的最常见想法是使用
vpath
搜索包含的文件。我觉得萨凡纳岛上有个漏洞。