[Ubuntu]GTest安装和测试

2023-11-18

1.Ubuntu直接通过控制台安装

sudo apt-get install libgtest-dev

2.编译链接库

   2.1进入gtest文件夹

cd /usr/src/gtest

    2.2编译

#没有安装Cmake的请先安装cmake
sudo mkdir build 
cd build
sudo cmake ..  #一定要以sudo的方式运行,否则没有写入权限
sudo make      #这个也一样要以sudo的方式

3.将生成的libgtest.a 和 libgtest_main.a 拷贝到系统的lib路径下

sudo cp libgtest*.a /usr/local/lib

到此为止,环境已经搭建完毕,接下来是代码测试

去你自己的文件夹生成一个test.cpp

vi test.cpp

然后写入以下代码

#include <gtest/gtest.h>//注意斜杠方向,左斜杠有可能找不到头文件
int Foo(int a,int b)
{
   if(0 == a||0 == b)
   throw "don't do that";
   int c = a%b;
   if (0 == c)
  {
     return b;
  }
  return Foo(b,c);
}

TEST(FooTest,HandleNoneZeroInput)//名称随便
{
   EXPECT_EQ(2,Foo(4,10));
   EXPECT_EQ(6,Foo(30,18));
}
int main(int argc,char*argv[])
{
   testing::InitGoogleTest(&argc,argv);
   return RUN_ALL_TESTS();
}

编译,这次采用简单的g++命令,需要注意的是 后面需要加上"-lgtest"和"-lpthread"

g++ test.cpp -lgtest -lpthread

运行效果如下

附上断言使用说明

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Ubuntu]GTest安装和测试 的相关文章

  • Linux文件编程常用函数详解——wait()函数

    函数原型和头文件 include
  • linux connect 设置连接超时【转】

    原来我们实现connect 超时基本上都使用unix网络编程一书的非阻塞方式 connect nonb 今天在网上看到一篇文章 觉得很有意思 转载如下 读Linux内核源码的时候偶然发现其connect的超时参数竟然和用SO SNDTIMO
  • gdb调试正在运行的进程

    http elisawell blog 163 com blog static 171462881201223061149953 有时会遇到一种很特殊的调试需求 对当前正在运行的其它进程进行调试 正是我今天遇到的情形 这种情况有可能发生在那
  • Linux 查看进程和线程CPU和内存占用情况

    文章目录 Linux 查看进程有哪些线程 Linux 查看程序内存占用情况 top和free等命令 Linux 查看进程 线程数量 Linux 查看进程有哪些线程 linux 下查看进程内的线程有哪些 首先通过进程名称 假设为SensorD
  • linux stat函数讲解

    原文地址 http www cnblogs com hnrainll archive 2011 05 11 2043361 html 表头文件 include
  • rpm 安装时提示缺少依赖库

    在麒麟系统下安装ecryptfs utils 82 6 ky3 3 x86 64 rpm 该软件包在 麒麟光盘的 KYLIN目录下 使用如下命令 rpm ivh ecryptfs utils 82 6 ky3 3 x86 64 rpm 提示
  • cd命令、pwd命令和环境变量PWD、OLDPWD的关联

    1 cd命令 cd命令这里不多介绍 cd 命令是返回上次所在的目录 2 PWD和OLDPWD环境变量 dai ubuntu env PWD home dai OLDPWD dai ubuntu 3 关联 1 当你输入 cd 命令返回上次的目
  • linux glob函数man页与实例

    Linux Programmer s Manual NAME glob globfree find pathnames matching a pattern free memory from glob SYNOPSIS include
  • Linux多进程:orphan process——孤儿进程

    孤儿进程orphan process 当父进程比子进程先结束 这样的子进程就成为了孤儿进程 每当出现一个孤儿进程 内核会把孤儿进程的父进程设置为init 托管 init进程会循环wait 孤儿进程结束 然后做剩下的善后 回收资源 因此 孤儿
  • Linux进程编程常用函数详解——vfork()和exec()函数

    vfork 函数原型
  • 解决/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

    原因 编译时用的gcc等系统环境和运行时的环境不同 比如gcc版本不一样 以及其他的运行库版本不同等 方法 官方下载需要的版本库 之后软连接到运行系统上 wget http ftp de debian org debian pool mai
  • 控制符号的可见性

    在普通的C语言中 如果您希望将函数或者变量限制在当前文件中 需要对其使用static关键字 然而 在一个包含很多文件的共享库中 如果您希望某个符号可以被共享库内部的几个文件访问 而又不提供给外部 则对符号进行隐藏处理就会比较困难 大多数的连
  • 线程的同步和互斥

    线程的同步和互斥题目 题目 设计生产者与消费者模型 缓冲区是一个大小为10的环 每个生产者产生一个0 1000的随机整数 存放在环空位中 消费者从环中取数据 并输出 一个生产者或消费者对应一个线程 要避免 1 两个生产者同时向环的同一个位置
  • 自己实现ls-l命令

    include
  • gtk主题指南

    一 gtk主题指南 1 Widgets 2 Styles 3 Engines 4 gtkrc文件 1 修改构件的属性 2 每一构件的分为五种状态 3 风格绑定 1 将一种风格绑定到组件类 2 组件嵌套的方式widget class 如wid
  • Richard Stevens的几本书

    版权声明 转载时请以超链接形式标明文章原始出处和作者信息及本声明 http stevens0102 blogbus com logs 37223648 html 博客名取为 纪念Richard Stevens 居然没有写几篇与Stevens
  • Linux系统中查看可执行程序的所在目录

    前言 在嵌入式开发中 有时候需要知道可执行程序的所在目录 在工作中 遇到一次定制开发 是集成对方公司的算法 对方要求把模型文件放到和可执行程序相同的目录下 当时完全不知道可执行程序在设备的哪个目录 因为没有遇到过也没有思考过这个问题 当时也
  • 如何快速确定程序的入口

    前言 在阅读代码时 知道程序的入口十分重要 这有助于快速理清程序的逻辑框架 我们找到程序入口后 顺着代码的执行顺序来阅读代码 可以比较容易的理解代码 这里说的代码是编译后成为可执行程序的代码 在linux中就是elf格式 被编译成可执行程序
  • 强烈推荐Linux深入学习必读的几本书

    2012 10 01 21 00 40 成为一名精通 Linux程序设计的高级程序员一直是不少朋友孜孜以求的目标 根据中华英才网统计数据 北京地区 Linux 程序员月薪平均为 Windows程序员的 1 8 倍 Java 程序员的 2 6
  • gcc搜索动态链接库的路径优先级排序

    GCC运行时 Linux动态链接库的搜索路径按优先级排序为 1 编译目标代码时 Wl rpath 指定的动态库搜索路径 当指定多个动态库搜索路径时 路径之间用冒号 分隔 2 环境变量 LD LIBRARY PATH 指定的动态库搜索路径 3

随机推荐

  • 【C语言】实现字符串逆序输出(包含空格的字符串)

    1 目的 实现字符串的逆序输出 比如I believe you 变为you believe I的形式 2 基本思路 这里我们先创建一个可以实现逆序打印的函数 将字符串逆序变为 uoy eveileb I 然后再将每个字符串逆序 从而变为yo
  • java 基础重学(一)-面向对象

    一 什么是面向过程 面向过程 是一种以事件为中心的编程思想 编程的时候把解决问题的步骤分析出来 然后用函数把这些步骤实现 在一步一步的具体步骤中再按顺序调用函数 自顶向下 逐步求精 模块化封装函数主张按功能把软件系统逐步细分 对每个涉及到的
  • 华为OD机试真题 Java 实现【整数对最小和】【2022Q4 100分】,附详细解题思路

    一 题目描述 给定两个整数数组array1 array2 数组元素按升序排列 假设从array1 array2中分别取出一个元素可构成一对元素 现在需要取出k对元素 并对取出的所有元素求和 计算和的最小值 注意 两对元素如果对应于array
  • 在win10, win11 家庭版中安装远程桌面服务

    win10 win11 家庭版中提供远程桌面服务 简介 在windows家庭版中 是不提供远程桌面服务的 你没有办法使用远程桌面连接到windows家庭版中 当然 你可用升级windows 版本到专业版 这样就可用享受到windows自带的
  • MySQL从5.6版本到5.7版本的升级过程

    MySQL从5 6版本到5 7版本的升级过程 二进制升级过程 1 介绍 此处因原有的版本就是5 6的 就不再赘述5 6的安装过程了 原有数据库5 6的目录情况 basedir usr local mysql base目录是做的软链 指向my
  • Matplotlib输出中文显示问题

    Matplotlib输出中文显示问题 试过觉得有用的办法 http www 360doc com content 14 0713 12 16740871 394080556 shtml
  • ggplot2读书笔记6:第四章 语法 基础理论

    碎碎念ing 终于结束了 ggplot2 的第一部分 Getting Started 今天开始看第二部分 语法 第四章 Mastering the Grammar 介绍了ggplot2的一些基础语法知识 大概是对前期内容在理论上做一个总结
  • x390拆机 升级内存和硬盘_战66拆机加内存折腾手记

    前言 今年6 18时入HP 战66二代AMD版时就在计划双十一时升级内存到16G 并顺带加个机械硬盘 结果用了4个多月后感觉目前硬盘空间尚无压力 所以只计划加内存 晒单 之前有朋友用过芝奇 说还不错 既有逼格也有保障 没有等到11 11当天
  • openGL增强表面细节----高度贴图

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 代码 主程序c 效果 前言 现在我们扩展法线贴图的概念 从纹理图像用于扰动法向量到扰乱顶点位置本身 实 际上 以这种方式修改对象的几何体具有一定的优势 例如使表面特征沿
  • 简单的移动阵型补全

    需求 模拟企鹅群以一种三角形的阵型移动 并向目标发动冲击 冲击时候的企鹅不在跟随阵型移动 阵型内的企鹅跟随阵型移动 并且会自动补全阵型 企鹅群体大概是这样的阵型 o o o o o o 可以抽象成一个数组 fromation new int
  • SQL中partition关键字的使用

    最近在写后台语句时候 运用到了partition这样一个关键字 先大致说一下背景 有一种数据表 如下 现在需要取出 每一个人最近的一次打卡时间 思路是 先把数据按照人名分组 然后在每个组里面按照时间排倒叙 最后取出每组的第一条数据即可 pa
  • 【Hadoop学起来】Linux配置$HADOOP_HOME/etc/hadoop/hadoop-env.sh时找不到JAVA_HOME?

    正文之前 今天很气愤 想要学点东西 但是老是被环境所限制 Hadoop这个见鬼的环境 我只是运行单机模式 结果就是都不成功 好不容易磕磕盼盼的终于把啥缺的东西都找出来了结果最后还是失败了 暂时我真的不想去看失败记录 因为快要睡了明天再说吧
  • Premiere Pro 2022有哪些新增功能吸引了你

    Premiere Pro2022正式出现在大家的面前 那么如此大版本的更新 都有哪些变化呢 今天我们就来谈谈pr22版本的变化 安装 Premiere Pro 2022中文 图形和标题 Premiere Pro 中的图形和字幕工作流程具有多
  • 华为星闪联盟:引领无线通信技术创新的先锋

    星闪 NearLink 是由华为倡导并发起的新一代无线短距通信技术 它从零到一全新设计 是为了满足万物互联时代个性化 多样化的极致 创新体验需求而诞生的 这项技术汇聚了中国300多家头部企业和机构的集体智慧 华为更是其中的主要贡献方 在过去
  • 微信小程序scroll-view滚动到指定位置

    自动滚动到指定位置 在小程序开发过程中 为了满足一个特殊的要求 因此需要一个特殊的功能 即在打开小程序数据加载完成的时候 需要页面自动滚动到指定位置 或者页面的底部 在各种度度 狗狗之后 通过各种尝试 算是找到了一个比较完美的方案 微信扫描
  • JVM-类加载详解

    一 JVM类加载过程 JVM类加载过程如下图 JVM类加载过程分为 加载 链接 初始化 使用 卸载 这五个阶段 其中链接阶段又包括 验证 准备 解析 加载 通过类的完全限定名 查找此类的二进制字节码文件 通过该字节码文件创建Class对象
  • springboot 结合 ice(飞冰) 实现上传功能

    ice 前端代码 我用的是一个拖拽的模板
  • Disk /dev/sdb doesn‘t contain a valid partition table

    使用fdisk l grep Disk命令查看磁盘情况提示Disk dev sdb doesn t contain a valid partition table 解决方案如下 使用 命令fdisk dev sdb 然后按照下面的步骤操作即
  • 【蓝桥杯 和与乘积】

    题目描述 解题思路 首先想想可以组成答案的区间有什么性质 很直观可以想到排除长度为1的和长度为2的 构成答案的区间肯定是由几个非1的数加上一堆1构成的 那么可以很容易的想到区间长度k有下面这个等式 k mul sm tot mul为区间非1
  • [Ubuntu]GTest安装和测试

    1 Ubuntu直接通过控制台安装 sudo apt get install libgtest dev 2 编译链接库 2 1进入gtest文件夹 cd usr src gtest 2 2编译 没有安装Cmake的请先安装cmake sud