从 bash 脚本导出变量不起作用,如果我将变量更改为任何其他名称,则可以工作

从 bash 脚本导出变量不起作用,如果我将变量更改为任何其他名称,则可以工作

这是我见过的最奇怪的行为。我知道您看到下面的解释可能会感到震惊,但确实,这种情况正在发生。

LON_GEMINI_BOX我正在尝试导出来自 bash 脚本的变量名。

并尝试在 makefile 中访问此变量的值来定义一些特定的内容。

看起来像: 在 bash 脚本中,

export LON_GEMINI_BOX = 1

在生成文件中,

ifeq ($(LON_GEMINI_BOX), 1)
This is how im defined
EXTRA_CFLAGS += 
EXTRA_CFLAGS += 
else
why is this happening
endif

在构建过程中我总是会进入其他部分。如果我只是将变量名称调整为LON_GEMINI1_BOX或除此之外的任何其他内容,LON_GEMINI_BOX则会导出并按预期工作。

我正在努力找出问题所在。

答案1

建议消除 makefile 条件中的所有空格。看看这个 makefile,它运行得很好。

TXT="--"
ifeq ($(LON_GEMINI_BOX),1)
 TXT="works!"
 EXTRA_CFLAGS +=
 EXTRA_CFLAGS +=
else
 TXT="why is this happening"
endif
all:
    @echo $(TXT)

相关内容