我使用apt-get install libgtest-dev
安装了gtest
我正在尝试检查是否有效。
所以我制作了简单的代码在Eclipse中进行测试。
但是有错误
相反,如果我将ATest类的继承更改为 protected ,则错误消失,但
另一个错误发生
怎么了 ?
#include <iostream>
#include <gtest/gtest.h>
class A{
public:
int a;
A(int a){this->a = a;}
A(){}
~A(){}
int getA(){return a;}
void setA(int a){this->a = a;}
};
class ATest : public ::testing::Test{
public:
virtual void SetUp(){
a1 = A(1);
a2 = A(2);
a3 = A(3);
}
virtual void TearDwon(){}
A a1;
A a2;
A a3;
};
TEST_F(ATest, AAA){
EXPECT_EQ(1, a1.getA());
EXPECT_EQ(2, a2.getA());
EXPECT_EQ(3, a3.getA());
}
int main(int argc, char **argv){
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
最佳答案
安装libgtest-dev
不会安装任何gtest二进制文件。
它只是在系统上安装googletest源程序包- header
在/usr/include/gtest
下,在/usr/src/gtest
下,
在这里可以继续使用cmake
或GNU autotools进行构建
如果你想。
在ubuntu/debian软件 channel 中没有googletest的二进制软件包
(或我所知道的其他地方)。通常的做法是
download the source archive,
提取它并使用自己构建的二进制文件。的README
源码包为构建和使用库提供了指导。
通常,执行以下操作的系统安装没有任何目的
像您一样完成源程序包。
您遇到的链接错误:
undefined reference to 'testing::Test::~Test()
与您的代码无关:发生是因为您与
链接
libgtest
,您无法链接它,因为它尚未安装通过
libgtest-dev
,您还没有自己构建它。当您以某种方式更改代码时,此链接错误将消失
引入编译错误,因为如果编译失败
则不会发生链接。