该项目有2个类 - Tree和TreeTest类
TreeTest类测试Tree类的功能。
TreeTest.h
#ifndef TREETEST_H
#define TREETEST_H
class TreeTest
{
public:
TreeTest();
virtual ~TreeTest();
void InitTreeFunctionTest();
protected:
private:
};
#endif // TREETEST_H
TreeTest.cpp
#include "TreeTest.h"
#include "Tree.h"
#include <cstring>
#include <iostream>
using namespace std;
void TreeTest::InitTreeFunctionTest()
{
//code goes here
}
Main.cpp的
#include <iostream>
#include <Tree.h>
#include <TreeTest.h>
using namespace std;
int main(int argc, char* argv[])
{
TreeTest* tt;
tt->InitTreeFunctionTest();
}
但是当我使用
进行编译时,它会出现以下错误g++ -fprofile-arcs -ftest-coverage main.cpp -I<full path to library> -o test
对TreeTest :: InitTreeFunctionTest()&#39;
的未定义引用
任何人都可以帮我找到错误吗?
由于
答案 0 :(得分:0)
您尚未编译TreeTest.cpp
尝试将其添加到命令行:
g++ -fprofile-arcs -ftest-coverage TreeTest.cpp main.cpp -I<full path to headers> -o test
修改:
您还需要在TestTree.cpp
中提供构造函数和析构函数的定义另一种解决方案是在标题中内联函数定义。但是,您可能希望编译它,除非函数是微不足道的。
答案 1 :(得分:0)
请使用#include "TreeTest.h"
,而不是#include <TreeTest.h>
。如果您要使用#include <TreeTest.h>
,首先必须将TreeTest.cpp
放入静态库中。顺便说一句,您可以搜索#include ""
和#include <>
之间的差异。我希望这可以帮到你。