gpt4 book ai didi

bash - 在包含 makefile 之前检查它是否存在

转载 作者:行者123 更新时间:2023-11-29 08:46:42 25 4
gpt4 key购买 nike

我有一个 makefile,其中包含一个 Rules.mak 文件,其中包含我要使用的工具。问题是如果他们想要提取版本或使用“ native ”安装,工具文件夹有免费选项。所以我想包含工具提取的规则(如果存在),否则我想包含 native 文件。

目标是这样的:

if Tool/Rules.mak exists then
include Tool/Rules.mak
else
include common/Rules-Tool.mak
fi

我已经尝试过 bash 方式或 make 方式,但由于这是设置环境的前提条件,我没有特定的目标,但由于检查失败导致调用错误。

if [ -f Tool/Rules.mak ]
then
echo testfile exists!
fi

还有

if [ -d ./Tool ]
then
echo testfile exists!
fi

以及带引号和类似的版本。问题是当我输入 make 时,几乎所有的时间都会出现以下错误:

Rules.mak:14: *** missing separator.  Stop.    

最佳答案

你可以那样做(没有ifelse)

-include Tool/Rules.mak
include common/Rules-Tool

像这样,如果 Tool/Rules.mak 不存在,您将不会收到错误消息。 ('-' 就可以了)

然后在 common/Rules-Tool 中使用 ?= 运算符(“条件变量赋值运算符”)为变量赋值。仅当变量尚不存在时,此运算符才会分配值。 IOW,它不会覆盖预先存在的值。如果 Tool/Rules.mak 不存在或仅部分填充变量 common/Rules-Tool 将完成它们。

关于bash - 在包含 makefile 之前检查它是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8346118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com