我有3个文件,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
是我在文件中使用的函数。
感谢您的帮助。
答案 0 :(得分:2)
您未能在编译器调用中包含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
是否正常?