我正在用c ++编写所有基本数据结构的代码,并且我从LinkedList开始。
我有LinkedList.h,它是LinkedList的类定义,具有嵌套的LinkedNode类定义。 LinkedList.cpp和LinkedNode.cpp包含由LinkedList.h指示的类中所有函数的实际函数实现。我也有LinkedListTests.h和LinkedListTests.cpp,其中LinkedListTests.h具有测试我的LinkedList实现的一组函数,而LinkedListTests.cpp有一个主要函数,可以从LinkedListTests.h调用这些函数。
所有.cpp文件都具有:
#include "LinkedList.h"
在其标题中,LinkedListTests.cpp也具有:
#include "LinkedListTests.h"
在其中。
这是我创建的用于将整个项目编译并链接在一起的makefile:
LinkedList: LinkedListTests.o LinkedList.o LinkedNode.o
g++ LinkedListTests.o LinkedList.o LinkedNode.o -o LinkedList
LinkedListTests.o: LinkedListTests.cpp LinkedListTests.h LinkedList.h
g++ -c LinkedListTests.cpp
LinkedList.o: LinkedList.cpp LinkedList.h
g++ -c LinkedList.cpp
LinkedNode.o: LinkedNode.cpp LinkedList.h
g++ -c LinkedNode.cpp
clean:
rm *.o LinkedList
关于为什么我得到未定义的参考错误的任何帮助吗?我相信所有.cpp文件都应编译并链接在一起,但事实并非如此。
作为参考,我正在Kali Linux虚拟机上使用g ++进行编译和运行。