关于Windows下基于BC3.1的makefile问题

bluesnail1986 2012-03-03 12:50:53
最近在看任哲的那本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文件....
求教,我这么写究竟什么地方有错?哪里有重复定义?又该如何改呢....?谢了先...
...全文
81 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧