Makefile ***缺少分隔符。停止制作文件
我得到了这个错误:Makefile ***缺少分隔符。停止制作文件,makefile,Makefile,我得到了这个错误: make:24: *** missing separator. Stop. 虽然我在第24行用制表符更改了所有空格字符 第24行:arm_v5t_le-gcc$文件$包括$LIBS-o$目标 代码如下: #DM_serial2_make export PATH="$PATH:/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/pro/bin:/opt/mv_
make:24: *** missing separator. Stop.
虽然我在第24行用制表符更改了所有空格字符
第24行:arm_v5t_le-gcc$文件$包括$LIBS-o$目标
代码如下:
#DM_serial2_make
export PATH="$PATH:/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/pro/bin:/opt/mv_pro_5.0/montavista/common/bin"
TARGET="/home/cilem/Desktop/06.05.2012/DM_serial2"
INCLUDES=" -I /home/cilem/Desktop/06.05.2012/libxml2 \
-I /home/cilem/Desktop/06.05.2012/gstreamer-0.10 \
-I /home/cilem/Desktop/06.05.2012/gstreamer-0.10/gst/interfaces \
-I /home/cilem/Desktop/06.05.2012/glib-2.0 \
-I /home/cilem/Desktop/06.05.2012/glib-2.0/include"
LIBS=" -L /home/cilem/Desktop/06.05.2012/lib/ -l:libgstreamer-0.10.so.0 \
-L /home/cilem/Desktop/06.05.2012/lib/ -l:libgstinterfaces-0.10.so.0 \
-L /home/cilem/Desktop/06.05.2012/lib/ -l:libgobject-2.0.so.0 \
-L /home/cilem/Desktop/06.05.2012/lib/ -l:libgmodule-2.0.so.0 \
-L /home/cilem/Desktop/06.05.2012/lib/ -l:libxml2.so.2 \
-L /home/cilem/Desktop/06.05.2012/lib/ -l:libgthread-2.0.so.0 \
-L /home/cilem/Desktop/06.05.2012/lib/ -l:libglib-2.0.so.0"
FILES="DM_serial2.c"
arm_v5t_le-gcc $FILES $INCLUDES $LIBS -o $TARGET
我认为最后一行应该替换为:
$TARGET: $FILES $INCLUDES $LIBS
arm_v5t_le-gcc $FILES $INCLUDES $LIBS -o $TARGET
上面的一行(以arm_v5t_le-gcc开头)应该以一个制表符开头,而不是空格。看起来像一个shell脚本。Shell脚本不是makefile,反之亦然。您需要找到一个关于make的好教程,或者阅读gnumake手册 例如,变量值中不应该有任何引号 其次,make中的变量扩展要求变量被括号或大括号包围:
$(FILES)
或${FILES}
第三,正如piokuc所说,这条线不是有效的make规则。制定规则的形式如下:
<target> : <dependencies...>
<commands...>
你这里还有其他奇怪的东西。您不需要在同一个目录中反复提供-L
标志。一次就够了。而且我不熟悉-l:libfoo.a
结构;通常是-lfoo
$(TARGET): $(FILES)
arm_v5t_le-gcc $(FILES) $(INCLUDES) $(LIBS) -o $(TARGET)