编译时 C++ 链接错误

C++ Linking Error while compiling

该项目有 2 个 classes - Tree 和 TreeTest class

TreeTest class 测试 Tree class 的功能。

但是当我使用

编译时出现以下错误
g++ -fprofile-arcs -ftest-coverage main.cpp -I<full path to library> -o test

undefined reference to `TreeTest::InitTreeFunctionTest()'

谁能帮我找出错误?

谢谢

你还没有编译TreeTest.cpp

尝试将其添加到您的命令行:

g++ -fprofile-arcs -ftest-coverage TreeTest.cpp main.cpp -I<full path to headers> -o test

编辑:

您还需要在 TestTree.cpp

中提供构造函数和析构函数的定义

另一种解决方案是在header 中内联函数定义。但是,除非函数很简单,否则您可能想要编译它。

请使用#include "TreeTest.h",而不是#include <TreeTest.h>。如果你想使用#include <TreeTest.h>,首先你必须把你的TreeTest.cpp做成一个静态库。顺便说一句,您可以搜索 #include ""#include <> 之间的区别。希望对您有所帮助。