首页 > 解决方案 > 运行自定义 Makefile 时出现未定义的引用错误

问题描述

我正在编写 C++ 中的所有基本数据结构,我从 LinkedList 开始。

我有 LinkedList.h,它是 LinkedList 的类定义,具有嵌套的 LinkedNode 类定义。LinkedList.cpp 和 LinkedNode.cpp 包含 LinkedList.h 规定的类中所有函数的实际函数实现。我也有 LinkedListTests.h 和 LinkedListTests.cpp,其中 LinkedListTests.h 有一组函数来测试我的 LinkedList 实现,LinkedListTests.cpp 有一个 main 函数,它调用 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++ 编译和运行。

标签: c++makefile

解决方案


推荐阅读