日期:2014-05-16  浏览次数:20658 次

makefile 一个小问, 第一次用
先贴makefile文件,   下面跟问题:


CFLAGS   =   -Wall
CFLAGS+=   -g
#CFLAGS+=   -Dcplusplus
#CFLAGS+=   -D_UNIX_

CSRC_EXCLUDE=   y.tab.c

LEX   =   flex
YACC   =   byacc
#LDLIBS=   -ly   -ll   -lm
LDLIBS=   -ly   -lm
GCC   =   gcc


CC   =   $(GCC)   $(CFLAGS)  

all:   masm  

masm: lex.yy.o   y.tab.o   asmutil.o   srcList.o   symbols.o   loclab.o   instr_handler.o   bit_instr.o   memory.o   orgSrcList.o
$(CC)   -o   masm     lex.yy.o   y.tab.o   asmutil.o   srcList.o   symbols.o   loclab.o   instr_handler.o   bit_instr.o   orgSrcList.o   memory.o   $(LDLIBS)

lex.yy.o:   asm.l.c   asm.h   y.tab.h   bit_instr.h   instr_handler.h
$(LEX)   -v   asm.l.c
$(CC)   -c   lex.yy.c

y.tab.c   y.tab.h:   asm.y.c   asm.h   asmutil.h   srcList.o   symbols.o
$(YACC)   -v   -d   asm.y.c

y.tab.o:   y.tab.c   y.tab.h   asm.h   asmutil.h     memory.o
$(CC)   -c   y.tab.c

bit_instr.o:   bit_instr.c   asm.h   masm.h  
$(CC)   -c   bit_instr.c

instr_handler.o:   instr_handler.c   instr_handler.h   asm.h   masm.h  
$(CC)   -c   instr_handler.c

srcList.o:   srcList.c   srcList.h   asm.h   asmutil.h
$(CC)   -c   srcList.c

orgSrcList.o:   orgSrcList.c   orgSrcList.h   asm.h   asmutil.h
gcc   -c   -g   orgSrcList.c

symbols.o:   symbols.c     symbols.h   asm.h   asmutil.h
gcc   -c   -g   symbols.c

asmutil.o:   asmutil.c     asmutil.h     asm.h  
gcc   -c   -g   asmutil.c

memory.o:   memory.c     memory.h     masm.h     asm.h
gcc   -c   -g   memory.c

loclab.o:   loclab.c     loclab.h  
gcc   -c   -g   loclab.c


main.o:   main.c   symbols.h
gcc   -c   -g   main.c

testme:   symbols.o   symbols.h   main.o
gcc   -o   testme   -g   main.o   symbols.o
 


clean::
rm   -f   *.o  
rm   -f   *.err   *.asl   *.crop   *.data   *.dat   *.sap
rm   -f   y.output   y.tab.c   lex.yy.c   y.tab.h  
rm   -f   *.exe   *.stackdump   *.bak


上面的文件中:
orgSrcList.o:   orgSrcList.c   orgSrcList.h   asm.h   asmutil.h
gcc   -c   -g   orgSrcList.c
是我后来添加的,运行的时候提示错误:
make:   ***   No   rule   to   make   target   `orgSrcList.c ',   needed   by   `orgSrcList.o '.     Stop
.
我就是按照其他几个rule写的,怎么会norule呢?

------解决方案--------------------
orgSrcList.o: orgSrcList.c orgSrcList.h asm.h asmutil.h
这里是tab不是空格 gcc -c -g orgSrcList.c

------解决方案--------------------
make: *** No rule to make target `orgSrcList.c ', needed by `orgSrcList.o '. Stop
或者是找