这是我的Make文件。我在main.c中调用一个名为SLCreate的函数来创建排序的链表。我在main.c中包含了sorted-list.h,但仍然无法正常工作
COMPILER = gcc
CCFLAGS = -ansi -pedantic -Wall -std=c99 -lm
all: main
debug:
make DEBUG=TRUE
main: sorted-list.o main.o
$(COMPILER) $(CCFLAGS) -o main main.o
main.o: main.c sorted-list.h
$(COMPILER) $(CCFLAGS) -c main.c
sorted-list: sorted-list.o
$(COMPILER) $(CCFLAGS) -o sorted-list sorted-list.o
sorted-list.o: sorted-list.c sorted-list.h
$(COMPILER) $(CCFLAGS) -c sorted-list.c
ifeq ($(DEBUG), TRUE)
CCFLAGS += -g
endif
clean:
rm -f main
rm -f *.o
rm -f sorted-list
rm -f *.o
错误:
/main.c:38:对“ SLCreate”的未定义引用
最佳答案
“未定义的引用”几乎总是表示您未能链接所需的对象。您的main
规则应为:
main: sorted-list.o main.o
$(COMPILER) $(CCFLAGS) -o main sorted-list.o main.o
或更简而言之,这是:
main: sorted-list.o main.o
$(COMPILER) $(CCFLAGS) -o $@ $^