关于Windows下基于BC3.1的makefile问题
最近在看任哲的那本uC/OS的书,书中的例子都是在Windows下用bc3.1的编译环境中实现编译、链接和运行。我的源文件在C:\Test\test1\WORK下,包括pa.c\pa.h\pb.c\pb.h\test.c五个文件,通过bc3.1中的make命令编译、链接生成test.exe文件。makefile文件如下:
#################################################################
BORLAND = C:\BC
CC = $(BORLAND)\BIN\BCC
LINK = $(BORLAND)\BIN\TLINK
OBJ = ..\OBJ
SOURCE =..\SOURCE
TARGET = ..\TEST
WORK = ..\WORK
PA = $(SOURCE)\PA
PB = $(SOURCE)\PB
TEST_PATH = $(SOURCE)\TEST
C_FLAGS = -c -ml -I$(BORLAND)\INCLUDE -L$(BORLAND)\LIB
LINK_FLAGS =
$(TARGET)\TEST.EXE: \
$(WORK)\PA.OBJ \
$(WORK)\PB.OBJ \
TEST.OBJ
$(LINK) $(LINK_FLAGS) @TESTLINK
$(WORK)\PA.OBJ: \
PA.C \
PA.H
$(CC) $(C_FLAGS) PA.C
$(WORK)\PB.OBJ: \
PB.C \
PB.H
$(CC) $(C_FLAGS) PB.C
TEST.OBJ: \
TEST.C \
PA.H \
PB.H
$(CC) $(C_FLAGS) TEST.C
################################################################
在命令行下,make报错,具体的错误如下:
Error makefile 31: Redefinition of target '..\WORK'
第31行就是make pb.obj的最后一行,$(CC) $(C_FLAGS) PB.C
如果将pb.obj前的$(WORK)删除,则make可以成功生成test.exe文件....
求教,我这么写究竟什么地方有错?哪里有重复定义?又该如何改呢....?谢了先...