我有三个文件,main.c
、lists.c
和lists.h
。
我正在尝试写一个Makefile,所有文件都在同一目录中:
maman21: lists.c lists.h main.c
gcc -g -Wall -ansi main.c -o maman21 -lm
通过终端进入文件夹并使用make
显示以下消息:
gcc -g -Wall -ansi main.c -o maman21 -lm
Undefined symbols for architecture x86_64: "_linkedListWay",
referenced from:
_main in main-C9dUT4.o "_reallocWay", referenced from:
_main in main-C9dUT4.o ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to
see invocation)
make: *** [maman21] Error 1
reallocWay
和linkedListWay
是我在文件中使用的函数。
谢谢你的帮助。
您未能在编译器调用中包含lists.c
文件,因此无法构建该文件。
应该是:
CFLAGS=-g -Wall -ansi
LDLIBS=-lm
maman21: main.o lists.o
main.o: main.c
lists.o: lists.c lists.h
上面使用了隐式Makefile规则,它"知道"如何将C文件转换为对象(.o
)文件。
另外,Clang被称为gcc
是正常的吗?