7
我想在我的规则模式中使用ifeq,并且遇到问题。这是我遇到的麻烦的规则:Makefile ifeq问题
$(OBJS): $(OBJDIR)/%.o : ../%.c
@mkdir -p $(dir [email protected])
ifeq(mcc.exe,$(CC))
o_file:=$(shell echo [email protected] | sed -e 's/\/cygdrive\///' | sed -e 's/\([a-zA-Z]\)/\1:/')
$(CC) $(CFLAGS) $< -o $(o_file)
else
$(CC) $(CFLAGS) $< -o [email protected]
endif
当我跑,我得到:
"/bin/sh: -c: line 0: syntax error near unexpected token `mcc.exe,mcc.exe'
/bin/sh: -c: line 0: `ifeq(mcc.exe,mcc.exe)'"
但是,当我不使用缩进,然后我得到:“生成文件:77 :*缺失分隔符。停止。“
我在Cygwin上使用GNU make 3.81。 ifeq的全部问题来自这样一个事实,即我有两个工具链相同的Makefile,其中一个(mcc.exe)无法应付/cygdrive/c/.../something路径,但是应该有c: /.../东西路径。如果你知道任何其他方法来解决这个问题,我会非常感激!
预先感谢您!
我找到了答案!应该没有缩进,但ifeq和开放支架之间应该有空间'('。这解决了问题!希望这可以帮助别人... – Nikola 2011-04-19 10:23:23
这让我有点难受,谢谢 – Sam 2012-01-03 17:36:23