shell 命令中缺少右括号?
Missing right parenthesis in shell command?
我正在尝试向我的 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 中确实 shell 了 25 次,所以我不确定为什么它找不到上面 shell 的正确括号。
我也将命令移到第 1 行进行测试,我得到了相同的消息(对行号更改取模)。为了好玩,我添加了一个不平衡的右括号,但我得到了同样的信息。
为什么找不到正确的括号?
如何强制 make 执行命令?
您必须转义 makefile 中的 #
,因为这会启动注释...
ALIGNED_ACCESS = $(shell cat config.h | $(EGREP) -c "^\#define NO_UNALIGNED_DATA_ACCESS")
注意“#”前的“\”
我正在尝试向我的 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 中确实 shell 了 25 次,所以我不确定为什么它找不到上面 shell 的正确括号。
我也将命令移到第 1 行进行测试,我得到了相同的消息(对行号更改取模)。为了好玩,我添加了一个不平衡的右括号,但我得到了同样的信息。
为什么找不到正确的括号?
如何强制 make 执行命令?
您必须转义 makefile 中的 #
,因为这会启动注释...
ALIGNED_ACCESS = $(shell cat config.h | $(EGREP) -c "^\#define NO_UNALIGNED_DATA_ACCESS")
注意“#”前的“\”