在shell命令中缺少右括号?

时间:2015-07-25 07:50:21

标签: shell makefile gnu-make cat

我正在尝试向makefile添加警告消息。 Make无法找到右括号。

以下内容来自我的GNUmakefile:

341  ALIGNED_ACCESS = $(shell cat config.h | $(EGREP) -c "^#define NO_UNALIGNED_DATA_ACCESS")
342  ifeq ($(ALIGNED_ACCESS),0)
343  $(info WARNING: NO_UNALIGNED_DATA_ACCESS is not defined in config.h)
344  endif

抱怨:

$ make
GNUmakefile:341: *** unterminated call to function 'shell': missing ')'.  Stop.

我确实在makefile中另外出现了25次,所以我不确定为什么它找不到上面shell的右括号。

我还将命令移动到第1行进行测试,并得到相同的消息(以行号更改为模)。为了好玩,我添加了一个不平衡的右括号,但我得到了同样的信息。

为什么找不到合适的括号?

如何强制执行命令?

1 个答案:

答案 0 :(得分:4)

您必须转义makefile中的#,因为这会启动评论...