GNU make产生“命令在第一个目标之前开始”错误

时间:2011-10-16 11:20:49

标签: emacs makefile

尝试从Fedora 15 x86_64上的源安装Emacs 22.3。

./configure

命令没问题,但是

使产量错误:

[sigrlami@server emacs-22.3]# make
cd lib-src; make all  \
CC='gcc' CFLAGS='-g -O2 -Wno-pointer-sign ' CPPFLAGS='-D_BSD_SOURCE  ' \
LDFLAGS='-Wl,-znocombreloc ' MAKE='make'
make[1]: Entering directory `/home/sigrlami/bin/emacs-22.3/lib-src'
Makefile:148: *** recipe commences before first target.  Stop.
make[1]: Leaving directory `/home/sigrlami/bin/emacs-22.3/lib-src'
make: *** [lib-src] Error 2

在makefile中,我没有触及任何东西,第148行中的一切似乎都没问题:

144 # ========================== start of cpp stuff =======================
145 LIBS_MOVE=$(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) $(COM_ERRLIB) $(HESIODLIB)
146 LOADLIBES= -lc
147 ALL_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
148           -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
149 LINK_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H

有任何建议如何解决这个问题?也许系统没有一些库?

1 个答案:

答案 0 :(得分:12)

make输入语言对空白区域敏感。

特别是命令(为了重新制作目标而要运行的动作)以标签开头,因此错误会明确告诉您标签不合适。

虽然只有行开头处的制表符才有特殊意义,但我尝试不使用makefile中的任何制表符,而不是命令开头的信号。