main.c:(.text+0xee):对‘pop’未定义的引用 collect2: error: ld returned 1 exit status

编写Make file时,编译报错:

main.c:(.text+0xee):对‘pop’未定义的引用
collect2: error: ld returned 1 exit status

main:main.o linkedlist.o
gcc -o main main.o linkedlist.o

main.o:main.c linkedlist.h
gcc main.c

linkedlist.o:linkedlist.c
gcc linkedlist.c
clean:
-rm main *.o

.PHONY:clean

img

但是单独敲命令编译就能成功
gcc -o main main.c linkedlist.c

是Makefile哪一步出错了吗?

你的Makefile写错了,你忘记加-c -o选项了

main: main.o linkedlist.o
    gcc main.o linkedlist.o -o main

main.o: main.c linkedlist.h
    gcc -c main.c -o man.o

linkedlist.o: linkedlist.c linkedlist.h
    gcc -c linkedlist.c -o linkedlist.o

clean:
    -rm main *.o

.PHONY: clean