我在linklist.h和linklist.c中的两个文件中实现了一个链接列表,并且我调用main.c中main函数的linklist.h中定义的一些函数 。 linklist.h包含在linklist.c和main.c中。当我用Makefile编译GCC的这个程序时,会出现名为“undefined reference to xxx”的错误。我认为我的Makefile的写法如下。那么这个链接错误的可能原因是什么用GCC编译时未定义引用“func”
CC=gcc
CFLAGS= -g -O2
TARGET=target
OBJECTS=main.o linklist.o
TARGET: $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -o $(TARGET)
clean:
rm target $(OBJECTS)
main.o:linklist.h
linklist.o:linklist.h
我对makefiles了解不多,但除了头文件之外,还应该在''linklist.c''和'main.c'这个地方提及吗? – stakx 2010-05-08 21:39:50
不,命名对象文件就足够了。通过推理规则知道哪些C文件与对象文件相关联。 – Jens 2012-05-31 12:40:22