使文件冒号

时间:2014-02-13 22:11:18

标签: compiler-construction makefile syntax-error

我想为很酷的语言编写一个编译器,我有一个Makefile:

FFLAGS=
BFLAGS=-d -v -y 
CFLAGS=-g -Wall -Wextra -std=c++11 -Wno-write-strings -I /usr/local/boost_1_50_0

FLEX=flex
BISON=bison
CC=g++

SRCS=y.tab.c ast.cpp tokentable.cpp symboltable.cpp main.cpp lex.yy.c semanticanalyzer.cpp astnodevisitor.cpp constants.cpp astnodetypechecker.cpp utility.cpp astnodecodegenerator.cpp
OBJS=y.tab.o ast.o tokentable.o symboltable.o main.o lex.yy.o semanticanalyzer.o astnodevisitor.o constants.o astnodetypechecker.o utility.o astnodecodegenerator.o

cooc : ${OBJS} 
    ${CC} ${CFLAGS} -o $@ ${OBJS}

%.o : %.cpp
    ${CC} ${CFLAGS} -c $<

y.tab.c : cool.y
    ${BISON} ${BFLAGS} cool.y

lex.yy.c : cool.flex
    ${FLEX} ${FFLAGS} cool.flex

.depend: ${SRCS} 
    rm -f ./.depend
    ${CC} ${CFLAGS} -MM $^>>./.depend

include .depend

但是当我在cmd中运行它时,我得到了这些错误,在这部分“rm -f ./.depend”冒号是预期的,最后3行有语法错误。请帮我解决问题。

1 个答案:

答案 0 :(得分:1)

如果您收到错误,请发布确切的错误文本(以及有用的周边环境)。请不要复述错误消息。错误消息中的确切短语,标点符号等通常很关键。还提供系统类型和软件版本(在本例中为make)。例如,我知道GNU make(至少)中没有任何内容会显示“冒号预期”之类的错误。

但是,我猜你用空格缩进了你的食谱线(rm -f ...等)。每个配方行上的第一个字符必须是实际的TAB字符。

我不知道为什么include行会出现语法错误。再次,如果您显示实际的错误文本,我们可能会更有帮助。