转载前注明出处欢迎转载分享
网上有很多类似的步骤,我简要说明下我自己在Linux-centos6.8下的安装步骤:
1.下载包
首先去google官方的github下载1.6.0版本的zip包,当然也有1.7.0或其他版本,而且不仅仅是zip包,还有tar包,我这里按照我的执行方法,我下载的是zip包,方法如下:
1
wget https://github.com/google/googletest/archive/release-1.6.0.zip


2.解压
比如我们现在 将release-1.6.0.zip包下载在/mnt/gtest目录下,并且我们所在的目录为/mnt/gtest/下。
接下来解压下载的release-1.6.0.zip包
1
unzip release-1.6.0.zip


3.配置
解压产生文件目录:googletest-release-1.6.0,接下来我们先把这长串名字改为gtest-1.6.0(不要问我为啥,为了和网上某些教程同步,我就跟着做了,你们也这样做吧,也能减少后面命令的长度,毕竟文件名字也太长)    
1
2
3
4
mv googletest-release- 1 . 6 . 0  gtest- 1 . 6 . 0//改名为gtest-1.6.0
cd gtest-1.6.0
cmake -DBUILD_SHARED_LIBS=ON 
//没有cmake的同学可以用yum命令安装
make                                             
//进入gtest-1.6.0进行配置


然后 将gtest-1.6.0目录下的include/gtest目录拷贝至/usr/local/include/和/usr/include/下,网上很多说只要任意目录下有即可,但为了确保不出问题,我们将gtest文件夹分别拷贝至两个目录中。
1
2
cp -r include/gtest /usr/local/include/
cp -r include/gtest /usr/include/


然后我们在用到gtest的文件中,用#include "gtest/gtest.h"或者#include指令就可以让编译器找到gtest的头文件了。当前我们所在的目录是/mnt/gtest/gtest-1.6.0/下,接下来我们要生成gtest-all.o和gtest_main.o机器码文件,将他们链接生成静态库libgtest.a。

g++ -I${GTEST_DIR}/include-I${GTEST_DIR} -c./src/gtest-all.cc,会在当前目录产生gtest-all.o,${GTEST_DIR}表示gtest源文件(gtest-1.6.0)路径,所以我们回到/mnt/gtest/目录下,然后编译目录/mnt/gtest/gtest-1.6.0/src/gtest/下的gtest-all.cc。
用下面命令编写:
1
2
g++ -Igtest-1.6.0/include -Igtest-1.6.0 -c ./src/gtest-all.cc
g++ -Igtest-
1.6.0/include -Igtest-1.6.0 -c ./src/gtest_main.cc
两条命令分别生成 gtest-all.ogtest_main.o


此时当前目录即/mnt/gtest/下就生成两个.o文件gtest-all.ogtest_main.o,然后我们再将两个.o文件 合并成一个静态库libgtest.a,可以拿出来便于以后gtest工程下链接使用。执行下面命令生成静态链接:
1
ar -rv libgtest.a gtest-all.o gtest_main.o


4.测试
我们编写一个简单的测试:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//sample.h函数
#pragma once
int fun(int a, int
 b);


//sample.cpp函数
#include "sample.h"
int fun(int a, int b)
{
    
return
 b;
}



//test.cpp测试函数
#include "gtest/gtest.h"
#include "sample.h"

TEST(fun, case1)
{
    EXPECT_LT(-
2fun(12));
    EXPECT_EQ(-
1fun(12));
    ASSERT_LT(-
2fun(12));
    ASSERT_EQ(-
1fun(12));
}

编译sample.cpp和测试函数test.cpp
1
2
g++ -c sample.cpp
g++ -c test.cpp

生成sample.o和test.o,再 将生成的机器码文件与libgtest.a静态库链接编译生成可执行程序
1
g++ test.o sample.o libgtest.a -o test -lpthread
-lpthread是必须要有的,否则链接时会出错。

运行生成的test文件即可输出测试 结果,如图所示:
Googletest测试框架搭建方法

从上述安装和运行结果,我们对googletest测试框架的搭建和效果是什么样子的有了一个基本的了解,理论上的编程后续更新。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐