试图使一个简单的Makefile失败

时间:2013-12-12 15:19:33

标签: c makefile

我有3个文件,main.clists.clists.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

reallocWaylinkedListWay是我在文件中使用的函数。

感谢您的帮助。

1 个答案:

答案 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是否正常?