当前位置: 首页 > news >正文

linux c++11 gcc4 环境编译安装googletest/gtest v1.10

c++11对应googletest/gtest

经过测试,c++11对应版本是googletest v1.10.x

编译安装

编译环境

sudo apt-get update
sudo apt-get install -y build-essential cmake

下载或git clone代码

git clone https://github.com/google/googletest.git
cd googletest
git checkout tags/v1.10.x  # 切换版本,我本地是在页面下载

编译安装googletest

cd googletest
mkdir build && cd build
cmake .. //默认release版本
cmake -DCMAKE_BUILD_TYPE=Debug .. //(可选)debug版本可以与release版本共存
cmake -DCMAKE_INSTALL_PREFIX=../gtest .. //(可选)指定安装目录
make
sudo make install
sudo make install DESTDIR=../gtest  //(可选)指定安装目录

使用googletest

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(MyTest)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)# 手动指定 Google Test 的头文件和库路径
include_directories(./gtest/include)       # 头文件路径
link_directories(./gtest/lib)               # 库文件路径# 添加可执行文件
add_executable(my_test main.cpp)# 链接 Google Test 库和 pthread(因为 GTest 依赖 pthread)
target_link_libraries(my_test gtest.a gtest_main.a pthread)# 如果需要动态库(.so),取消注释以下行:
# target_link_libraries(my_test gtest.so gtest_main.so pthread)# 强制指定运行时库路径(动态库需要此配置)
# target_link_options(my_test PRIVATE "-Wl,-rpath,./gtest/lib")

main.cpp

#include <gtest/gtest.h>// 要测试的函数(示例)
int add(int a, int b) {return a + b;
}// 测试用例
TEST(AddTest, PositiveNumbers) {EXPECT_EQ(add(2, 3), 5);EXPECT_GT(add(3, 2), 4);
}// 主函数(Google Test 需要此入口)
int main(int argc, char**argv) {::testing::InitGoogleTest(&argc, argv);return RUN_ALL_TESTS();
}

编译运行my_test

mkdir build && cd build
cmake ..
make
./my_test

相关文章:

linux c++11 gcc4 环境编译安装googletest/gtest v1.10

c11对应googletest/gtest 经过测试&#xff0c;c11对应版本是googletest v1.10.x 编译安装 编译环境 sudo apt-get update sudo apt-get install -y build-essential cmake下载或git clone代码 git clone https://github.com/google/googletest.git cd googletest git che…...

20250306-笔记-精读class CVRPEnv:step(self, selected)

文章目录 前言一、时间步小于 41.1 控制时间步的递增1.2 判断是否在配送中心1.3 特定时间步的操作1.4更新1.4.1 更新当前节点和已选择节点列表1.4.2 更新需求和负载1.4.3 更新访问标记1.4.4 更新负无穷掩码1.4.5 更新步骤状态&#xff0c;将更新后的状态同步到 self.step_state…...

文档进行embedding,Faiss向量检索

这里采用Langchain的HuggingFaceEmbeddings 参照博主&#xff0c;改了一些东西&#xff0c;因为Langchain0.3在0.2的基础上进行了一定的修改 from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain_huggingface import HuggingFaceEmbeddings …...

一周学会Flask3 Python Web开发-在模板中渲染WTForms表单视图函数里获取表单数据

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 为了能够在模板中渲染表单&#xff0c;我们需要把表单类实例传入模板。首先在视图函数里实例化表单类LoginForm&#xff0c;然…...

Android AudioFlinger(五)—— 揭开AudioMixer面纱

前言&#xff1a; 在 Android 音频系统中&#xff0c;AudioMixer 是音频框架中一个关键的组件&#xff0c;用于处理多路音频流的混音操作。它主要存在于音频回放路径中&#xff0c;是 AudioFlinger 服务的一部分。 上一节我们讲threadloop的时候&#xff0c;提到了一个函数pr…...

分类学习(加入半监督学习)

#随机种子固定&#xff0c;随机结果也固定 def seed_everything(seed):torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)torch.backends.cudnn.benchmark Falsetorch.backends.cudnn.deterministic Truerandom.seed(seed)np.random.see…...

Serilog: 强大的 .NET 日志库

Serilog 是一个功能强大的日志记录库&#xff0c;专为 .NET 平台设计。它提供了丰富的 API 和可插拔的输出器及格式化器&#xff0c;使得开发者能够轻松定制和扩展日志记录功能。在本文中&#xff0c;我们将探索 Serilog 的基础知识、API 使用、配置和一些常见的示例。 1. 日志…...

Matlab——添加坐标轴虚线网格的方法

第一步&#xff1a;在显示绘制图的窗口&#xff0c;点击左上角 “编辑”&#xff0c;然后选“坐标区属性” 第二步&#xff1a;点 “网格”&#xff0c;可以看到添加网格的方框了...

π0及π0_fast的源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司微调π0的部分实践

前言 ChatGPT出来后的两年多&#xff0c;也是我疯狂写博的两年多(年初deepseek更引爆了下)&#xff0c;比如从创业起步时的15年到后来22年之间 每年2-6篇的&#xff0c;干到了23年30篇、24年65篇、25年前两月18篇&#xff0c;成了我在大模型和具身的原始技术积累 如今一转眼已…...

TCP7680端口是什么服务

WAF上看到有好多tcp7680端口的访问信息 于是上网搜索了一下&#xff0c;确认TCP7680端口是Windows系统更新“传递优化”功能的服务端口&#xff0c;个人理解应该是Windows利用这个TCP7680端口&#xff0c;直接从内网已经具备更新包的主机上共享下载该升级包&#xff0c;无需从微…...

服务器python项目部署

角色&#xff1a;root, 其他用户应该也可以 1. 安装python3环境 #如果是新机器&#xff0c;尽量执行&#xff0c;避免未知报错 yum -y update python -v yum install python3 python3 -v2. 使用virtualenvwrapper 创建虚拟环境,并使用workon切换不同的虚拟环境 # 安装virtua…...

Hive-优化(语法优化篇)

列裁剪与分区裁剪 在生产环境中&#xff0c;会面临列很多或者数据量很大时&#xff0c;如果使用select * 或者不指定分区进行全列或者全表扫描时效率很低。Hive在读取数据时&#xff0c;可以只读取查询中所需要的列&#xff0c;忽视其他的列&#xff0c;这样做可以节省读取开销…...

C语言100天练习题【记录本】

C语言经典100题&#xff08;手把手 编程&#xff09; 可以在哔哩哔哩找到&#xff08;url:C语言经典100题&#xff08;手把手 编程&#xff09;_哔哩哔哩_bilibili&#xff09; 已解决的天数&#xff1a;一&#xff0c;二&#xff0c;五&#xff0c;六&#xff0c;八&#xf…...

记录排查服务器CPU负载过高

1.top 命令查看cpu占比过高的进程id 这里是 6 2. 查看进程中占用CPU过高的线程 id 这里是9 top -H -p 6 ps -mp 6 -o THREAD,tid,time 使用jstack 工具 产看进程的日志 需要线程id转换成16进制 jstack 6 | grep “0x9” 4.jstack 6 可以看进程的详细日志 查看日志发现是 垃圾回…...

Spring Boot 项目中 Redis 常见问题及解决方案

目录 缓存穿透缓存雪崩缓存击穿Redis 连接池耗尽Redis 序列化问题总结 1. 缓存穿透 问题描述 缓存穿透是指查询一个不存在的数据&#xff0c;由于缓存中没有该数据&#xff0c;请求会直接打到数据库上&#xff0c;导致数据库压力过大。 解决方案 缓存空值&#xff1a;即使…...

基于Spring Boot的校园失物招领系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

10 【HarmonyOS NEXT】 仿uv-ui组件开发之Avatar头像组件开发教程(一)

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; 目录 第一篇&#xff1a;Avatar 组件基础概念与设计1. 组件概述2. 接口设计2.1 形状类型定义2.2 尺寸类型定义2.3 组件属性接口 3. 设计原则4. 使用…...

OpenHarmony 5.0.0 Release

OpenHarmony 5.0.0 Release 版本概述 OpenHarmony 5.0.0 Release版本标准系统能力持续完善。相比OpenHarmony 5.0 Beta1&#xff0c;Release版本做出了如下特性新增或增强&#xff1a; 应用框架新增更多生命周期管理能力、提供子进程相关能力&#xff0c;可以对应用运行时的…...

RSA的理解运用与Pycharm组装Cryptodome库

1、RSA的来源 RSA通常指基于RSA算法的密码系统&#xff0c;令我没想到的是&#xff0c;其名字的来源竟然不是某个含有特别意义的单词缩写而成&#xff08;比如PHP&#xff1a;Hypertext Preprocessor(超文本预处理器)&#xff09;&#xff0c;而是由1977年提出该算法的三个歪果…...

Android 多用户相关

Android 多用户相关 本文主要记录下android 多用户相关的adb 命令操作. 1: 获取用户列表 命令: adb shell pm list users 输出如下: Users:UserInfo{0:机主:c13} running默认只有一个用户, id为0 &#xff0c;用户状态为运行 2: 创建新用户 命令&#xff1a; adb shell …...

计算机毕业设计springboot智慧校园服务系统 基于SpringBoot的高校智慧校园综合管理平台的设计与实现 基于SpringBoot与微信小程序的数字化校园服务系统的设计与开发

计算机毕业设计springboot智慧校园服务系统 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着社会的快速发展和信息技术的全面进步&#xff0c;传统的教育教学模式面临着诸多挑…...

Qwen3-VL-WEBUI效果实测:对比其他模型,看看优势在哪里

Qwen3-VL-WEBUI效果实测&#xff1a;对比其他模型&#xff0c;看看优势在哪里 1. 引言&#xff1a;当AI不仅能“看”&#xff0c;还能“做” 想象一下&#xff0c;你给AI看一张软件界面的截图&#xff0c;它不仅能告诉你界面上有什么&#xff0c;还能一步步指导你如何操作&am…...

RMBG-2.0隐私安全优势解析:纯本地推理杜绝图片上传与数据泄露风险

RMBG-2.0隐私安全优势解析&#xff1a;纯本地推理杜绝图片上传与数据泄露风险 在数字时代&#xff0c;图片处理已经成为日常工作和创作的重要组成部分&#xff0c;但随之而来的隐私安全问题也日益凸显。许多在线抠图工具需要用户上传图片到云端服务器进行处理&#xff0c;这不…...

ESLint-Plugin-React 终极配置指南:如何创建适合不同团队的个性化规则组合

ESLint-Plugin-React 终极配置指南&#xff1a;如何创建适合不同团队的个性化规则组合 【免费下载链接】eslint-plugin-react React-specific linting rules for ESLint 项目地址: https://gitcode.com/gh_mirrors/es/eslint-plugin-react ESLint-Plugin-React 是一个专…...

Git GUI里那些小箭头和蓝点到底是啥?一份给新手的保姆级图解指南

Git GUI可视化指南&#xff1a;解码提交历史中的符号与分支拓扑 第一次打开Git GUI的提交历史视图时&#xff0c;那些彩色线条、小蓝点和神秘箭头就像天书般令人困惑。作为从SVN过渡到Git的开发者&#xff0c;我曾盯着这些符号发呆半小时——直到发现它们其实是项目历史的可视化…...

STM32磁悬浮平衡术(一):PID算法调校与硬件选型指南

1. PID算法&#xff1a;磁悬浮系统的"大脑" 磁悬浮系统的核心挑战在于如何让浮子稳定悬浮。想象一下&#xff0c;你要用手指顶着一根铅笔保持直立——这需要不断微调手指的位置来抵消铅笔的倾斜。PID算法就是STM32中扮演这个"微调手指"角色的关键程序。 PI…...

SmolVLA模型服务监控与告警体系搭建

SmolVLA模型服务监控与告警体系搭建 你刚把SmolVLA模型部署上线&#xff0c;看着它流畅地处理着第一批请求&#xff0c;心里总算踏实了点。但没过多久&#xff0c;问题就来了&#xff1a;半夜突然收到用户反馈说服务变慢了&#xff0c;你赶紧爬起来查&#xff0c;发现是GPU显存…...

解锁图像标注效率:LabelImg亮度调节功能提升标注准确性全指南

解锁图像标注效率&#xff1a;LabelImg亮度调节功能提升标注准确性全指南 【免费下载链接】labelImg LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check…...

Focaler-IoU: More Focused Intersection over Union——更聚焦的交并比损失

《Focaler-IoU: More Focused Intersection over Union Loss》主要研究内容可以全面概括如下&#xff1a; 研究背景与问题&#xff1a; 在目标检测任务中&#xff0c;边界框回归的精度很大程度上取决于损失函数的设计。现有的IoU-based损失函数&#xff08;如GIoU、CIoU、EIoU…...

王者荣耀进阶指南:如何用这个HTML5模拟器测试不同出装对英雄属性的影响

王者荣耀进阶指南&#xff1a;如何用HTML5模拟器优化英雄出装策略 在MOBA游戏的战术体系中&#xff0c;装备选择往往决定着团战的胜负走向。传统依靠经验积累的配装方式存在试错成本高、数据感知模糊等痛点&#xff0c;而现代HTML5技术构建的模拟器为玩家提供了可视化、即时反馈…...