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