[英]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.