这是我的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 $@ $^

09-30 16:52
查看更多