繁体   English   中英

Makefile (erlang.mk) 找不到存在的文件

[英]Makefile (erlang.mk) can't find file that exists

我正在尝试构建一个 Makefile 导入 erlang.mk 的项目,该项目导入其他 Makefile 和 erlang.mks。

在一个 erlang.mk 我有一个grep在一个配方中的条件调用,看起来像这样

if grep ^$$dep$$ $(ERLANG_MK_TMP)/deps.log; then \

那就是打印

grep: /home/forrealthough/code/rabbitmq-consistent-hash/.erlang.mk/deps.log: No such file or directory

返回码为 2。如果我将这一行放在前面

if [ ! -f $$ERLANG_MK_TMP/deps.log ]; then echo "File not found!"; fi;\

我得到一个“找不到文件。”。

该文件确实存在,我可以从同一目录中cat它并运行相同的if行,而不会出现“找不到文件。”。 它的权限是-rw-rw-r--并且无论是否使用sudo运行make都会出现相同的错误。

为什么我的脚本找不到这个文件?

$(ERLANG_MK_TMP)是一个生成变量。 $$ERLANG_MK_TMP是一个(转义的)shell 变量。 后者只有在您导出前者时才会有值,如果您只是在 makefile 中分配一个 make 变量而不导出它,它将没有任何值。

你为什么在这里使用两种不同的格式? 为什么不使用:

if [ ! -f $(ERLANG_MK_TMP)/deps.log ]; then ...

?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM