Windows VS2015 cmake编译Gtest并进行测试

news2024/9/23 13:25:11

1.下载Gtest

下载网址:https://github.com/google/googletest/releases
也可以直接使用下载好的附件
解压,放到一个目录中,演示所用,直接存放D盘了。
在这里插入图片描述

2.使用CMake生成vs编译工程

选好下图中两个路径,点击Configure按钮。
在这里插入图片描述
选择Win32,然后Finish。
在这里插入图片描述
配置完成后,点击Generate按钮。
在这里插入图片描述
然后在新建的bin文件夹下便可以看到生成的编译工程,双击sln,默认使用vs打开。

在这里插入图片描述

3.编译生成静态库文件

点击生成->生成解决方案。
在这里插入图片描述
可以看到生成的库文件gtest_main.lib等。搞不懂的是在Debug下生成的库文件为什么末尾不带d以标识是Debug库文件。
在这里插入图片描述
选择Release再生成一下
在这里插入图片描述

4.VS工程环境设置

VS新建win32控制台应用程序,名为LearnGtest。
更改项目属性。

(1)添加包含目录

VC++目录->包含目录,添加头文件路径:D:\googletest-main\googletest\include
在这里插入图片描述

(2)添加库文件

链接库->输入->附加依赖项,添加D:\googletest-main\bin\lib\Debug\gtest.lib库文件。
在这里插入图片描述

(3)修改运行库

C/C+±> 代码生成->运行库->多线程调试(/MTd)。
在这里插入图片描述

5.代码测试

main.cpp中输入下面代码

#include<gtest/gtest.h>
int add(int a, int b) {
	return a + b;
}
int sub(int a, int b) {
	return a - b;
}
TEST(testCase, test0) {
	EXPECT_EQ(add(2, 3), 5);
	EXPECT_EQ(sub(5, 3), 2);
}
int main(int argc, char **argv) {
	testing::InitGoogleTest(&argc, argv);
	return RUN_ALL_TESTS();
}

结果如下:
在这里插入图片描述
工程界面如下:
在这里插入图片描述

6.可能出现的问题

如果编译时出现下面这个问题
在这里插入图片描述
是没有更改运行库导致。
在这里插入图片描述

将运行库改为 多线程调试(/MTd) 即可。在这里插入图片描述

7.参考链接

GTest基础学习-01-开发环境安装和配置
简单使用可参考:GTest的安装与使用

8.附件

googletest-main.zip:https://download.csdn.net/download/HHT0506/87316499(无需积分)
VS2015完整工程(包含编译生成的库等)https://download.csdn.net/download/HHT0506/87316516

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/98578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (8)- AWBlock

AWPLC 目前还处于开发阶段的早期&#xff0c;写这个系列文章的目的&#xff0c;除了用来验证目前所做的工作外&#xff0c;还希望得到大家的指点和反馈。如果您有任何疑问和建议&#xff0c;请在评论区留言。 1. 背景 AWTK 全称 Toolkit AnyWhere&#xff0c;是 ZLG 开发的开源…

玩以太坊链上项目的必备技能(OOP-接口-Solidity之旅十一)

接口&#xff08;interface&#xff09; 我们知道在Java里接口是特殊的抽象类&#xff0c;限制多于抽象类&#xff0c;但随着Java版本的更新&#xff0c;Java中的接口是越来越趋于抽象类了&#xff08;这样说&#xff0c;可能有点不妥&#xff0c;因为接口本就是特殊的抽象类&…

自己整理的Java面试题(下)

目录五.Java框架部分Spring1.Spring中的拦截器&#xff0c;过滤器组件介绍&#xff1f;2.说一下spring的IOC&#xff1f;3.Spring中的异常处理&#xff1a;4.jdk动态代理和cglib动态代理&#xff1a;5.Spring Bean生命周期&#xff1a;6.Spring IOC原理&#xff1a;7.BeanFacto…

RK3568平台开发系列讲解(Camera篇)Camera API v2框架

🚀返回专栏总目录 文章目录 一、Camera API v2框架二、preview流程三、核心模块沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇讲介绍 Camera API v2框架。 一、Camera API v2框架 应用框架:应用代码位于应用框架级别,它使用 Camera 2 API 与相机硬件进行交互…

【正点原子I.MX6U-MINI】u-boot过程移植详解

正点原子的I.MX6ULL开发板参考的是NXP官方的I.MX6ULL EVK开发板做的硬件。 Linux的移植要复杂的多&#xff0c;在移植Linux之前我们需要先移植一个 bootloader 代码&#xff0c;这个 bootloader 代码用于启动Linux 内核&#xff0c;bootloader有很多&#xff0c;常用的就是 U-…

蓝桥杯C/C++百校真题赛(1期)Day3题解(等差数列、回路计数)

Q1 等差数列 由于保证了题目给出的一定是一个等差数列的部分项&#xff0c;且等差数列具有单调性质&#xff0c;所以根据大小排序后最小的did_idi​就是所求等差数列的公差ddd, 又因为求的是最小&#xff0c;所以n(an−a1)/d1,特别的&#xff0c;当ana1,d0时&#xff0c;特判输…

[数据库]复习杂项

&#xff08;画师蓝鸟mo13tto&#xff09; 数据库笔记&#xff08;补充&#xff09;——候选码的确定方法 求最小依赖集 最小函数依赖集Fm的定义&#xff0c;求法以及举例 当然这篇文章后半部分有误&#xff1a;【通俗易懂】关系模式范式分解教程 3NF与BCNF口诀!小白也能看…

企业数字化转型:数据集成是成功的关键

按照数据的生命周期&#xff0c;我们通常将大数据技术分为数据集成、数据存储、批/流处理、数据查询与分析、数据调度与编排、数据开发、BI 7 个部分。 数据集成是什么&#xff1f; 可以看到数据集成在数据生命周期的最前面位置&#xff0c;它负责将多个来自不同数据源的数据…

[附源码]计算机毕业设计Python保护濒危动物公益网站(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

vue3 中的响应式设计原理

Vue 3 中的响应式原理可谓是非常之重要&#xff0c;通过学习 Vue3 的响应式原理&#xff0c;不仅能让我们学习到 Vue.js 的一些设计模式和思想&#xff0c;还能帮助我们提高项目开发效率和代码调试能力。 一、Vue 3 响应式使用 1. Vue 3 中的使用 当我们在学习 Vue 3 的时候&…

51单片机——动态数码管实验,小白讲解,相互学习

多位数码管介绍&#xff1a; 多位数码管&#xff0c;即两个或两个以上单个数码管并列集中在一起形成一体的数码管。当多位一体时&#xff0c;他们内部的公共端是独立的&#xff0c;二负责显示什么数字的段线&#xff08;a-dp&#xff09;全部是连接在一起的&#xff0c;独立的公…

中国水文地质图集

概述 水文地质图集部分来源于 《中华人民共和国水文地质图集》(地质出版社1979年版)的GIS数字化版(数据格式:JPEG),图集是由全国性、地区性和分省/自治区/直辖市等三类图幅组成,共68幅图(实际收集到55幅图)。 主要内容包括:水文地质图、地下热水分布图、水化学图、…

数据结构C语言版 —— 栈的实现

文章目录栈1. 基本概念2. 栈的实现1) 初始化栈2) 栈的扩容3) 判断栈是否为空4) 入栈5) 出栈6) 获取栈顶元素7) 获取栈中元素个数8) 销毁栈栈 1. 基本概念 栈(Stack)&#xff1a;一种特殊的线性表&#xff0c;其只限定于在表尾进行插入或者删除操作。进行数据插入和删除操作的…

RocketMq02_复制刷盘、Broker常用模式、磁盘阵列、集群搭建

文章目录①. 单机版本安装与启动②. 控制台的安装与启动③. 复制刷盘、Broker集群模式④. 磁盘阵列 - RAID⑤.JBOD、RAID0⑥. RAID1、RAID10、01⑦. 搭建集群 - 异步两主两从①. 单机版本安装与启动 ①. 系统要求是64位的,JDK要求是1.8及其以上版本的 ②. 将下载的安装包上传到…

NFT及智能合约开发

文章目录1.Web3.01.1 GameFi1.2 DeFi1.3 dApp2.NFT2.1 NFT Applications2.2 NFT Earning2.3 NFT结构2.3 IPFS2.4 Wallet3.Smart Contract3.1 Smart Contract System3.2 Smart Contract Development3.2.1 Language3.2.2 IDE3.2.3 BlockChain3.2.4 FrontEnd3.2.5 NFT Test WebSit…

《Mysql是怎样运行的》

客户端查询mysql版本&#xff1a;select version(); 1 第1章 装作自己是个小白-重新认识MySQL 1.1 MySQL的客户端&#xff0f;服务器架构每个进程都有一个唯一的编号&#xff0c;称为 进程ID &#xff0c;英文名叫 PID &#xff0c;这个编号是在我们启动程序的时候由操作系统随…

IDEA运行SpringBoot项目常见问题【统一答疑】

【辰兮要努力】&#xff1a;hello你好我是辰兮&#xff0c;很高兴你能来阅读&#xff0c;昵称是希望自己能不断精进&#xff0c;向着优秀程序员前行&#xff01; 博客来源于项目以及编程中遇到的问题总结&#xff0c;偶尔会有读书分享&#xff0c;我会陆续更新Java前端、后台、…

PRISEMI芯导科技推出PDG7115直驱型E-Mode氮化镓功率IC

PRISEMI芯导科技推出PDG7115直驱型E-Mode氮化镓功率IC 氮化镓以开关速度快&#xff0c;导阻低&#xff0c;低输入输出电荷的优势&#xff0c;应用在快充上逐渐取代了传统的高压硅MOS管。使用氮化镓取代硅MOS管&#xff0c;不仅降低了开关损耗&#xff0c;提高充电器的转换效率…

SpringBoot RabbitMq 六大模式

目录 依赖、配置 简单队列 模型 代码示例 工作队列 模型 代码示例 订阅模式 模型 代码示例 路由模式 模型 代码示例 主题模式 模型 代码示例 RPC 依赖、配置 依赖&#xff1a; <dependency> <groupId>org.springframework.boot</groupId&g…

三分查找算法

目录 一 算法简介 详细介绍 两种基本方法 二 算法实践 1&#xff09;实数三分 拓展&#xff1a;秦九韶算法计算多项式 方法1&#xff1a;直接模拟累加 方法二&#xff1a;根据秦九韶算法 1&#xff09;模板三分法 题目描述 解法 2&#xff09;三分求极值 题目描述 …