我正在使用set.h
界面执行黑盒测试,我无法访问set.c
,我已经获得了目标文件set.o
,我需要编写该集合的main.c
文件中的一堆测试。如何创建包含set.o
,set.h
和main.c
的makefile?
**我已经有了set.o文件,所以我不必使用set.c
重新生成它我很困惑,因为我只知道如何使用完整的文件。
这是我的模板
CC = clang
CFLAGS = -g -Wall
PROG = example
HDRS = set.h
SRCS = main.c
OBJDIR = object
OBJS = $(OBJDIR)/main.o $(OBJDIR)/set.o
# compiling rules
$(PROG): $(OBJS) $(OBJDIR)
$(CC) $(CFLAGS) $(OBJS) -o $(PROG)
$(OBJDIR)/set.o: set.h $(HDRS) $(OBJDIR)
$(CC) $(CFLAGS) -c set.h -o $(OBJDIR)/set.o
$(OBJDIR)/main.o: main.c $(HDRS) $(OBJDIR)
$(CC) $(CFLAGS) -c main.c -o $(OBJDIR)/main.o
$(OBJDIR):
mkdir $(OBJDIR)
clean:
rm -f $(PROG) $(OBJS)
答案 0 :(得分:3)
如果您已经拥有set.o文件,则无需为其创建规则,只需使用它即可。还要注意我摆脱了mkdir,因为如果你已经有set.o
,它应该已经在对象/对了吗?
CC = clang
CFLAGS = -g -Wall
PROG = example
HDRS = set.h
SRCS = main.c
OBJDIR = object
OBJS = $(OBJDIR)/main.o
# compiling rules
$(PROG): $(OBJS)
$(CC) $(CFLAGS) $(OBJS) $(OBJDIR)/set.o -o $(PROG)
$(OBJDIR)/main.o: main.c $(HDRS)
$(CC) $(CFLAGS) -c main.c -o $(OBJDIR)/main.o
clean:
rm -f $(PROG) $(OBJS)