Ubuntu 上编译protobuf 指

欢迎大家关注我的B站主页MYVision_MY视界的个人空间-MYVision_MY视界个人主页-哔哩哔哩视频

 

下载protobuf 

GitHub - protocolbuffers/protobuf: Protocol Buffers - Google's data interchange format

 根据需要从release 中下载指定的版本

下载完之后,根据提供的CMake install readme 文件,来执行命令,如下所示

但是,当你执行cmake . 的时候,你会毫无悬念的看到如下错误

CMake Error at third_party/utf8_range/CMakeLists.txt:31 (add_subdirectory):protobuf-23.4/third_party/abseil-cpp does not contain a CMakeLists.txt file.

然后,你去github 上搜,发现他们有如下回答

 于是,你要手动编译abseil-cpp ,当然你也可以直接安装

编译abseil-cpp

下载地址为:https://github.com/abseil/abseil-cpp

下载之后,参考如下说明

cmake -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=ON -DCMAKE_CXX_STANDARD=14 ..

 然后就能编译成功了,然后运行make install DESTDIR=youpath 把它安装到指定目录下

Build protobuf

运行如下命令

cmake . -Dprotobuf_ABSL_PROVIDER=package and -DCMAKE_PREFIX_PATH=yourpath/abseil_install  # Path to where I installed Abseil

然后就成功了


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

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

相关文章

Godot 4 着色器 - Shader调试

我之前用OpenCV进行图像相关处理,觉得已经很不错,结合GDI可以实现流畅的动画效果 直到近来用Shader后才发现,着色器更上一层楼,原来这是入了GPU的坑 Shader编程限制很多,各种不支持,看在它性能不错功能炫…

让vue项目支持glsl语法

如果你想让Vue项目支持GLSL(OpenGL着色语言)语法,你需要使用特殊的加载器使Webpack能够加载和解析GLSL文件。这一般可以通过下面的步骤实现: Install webpack-glsl-loader: npm install webpack-glsl-loader--save-dev如果你使用…

发布npm包流程

发布npm包的步骤如下: 在终端中通过 npm init 命令创建一个新的npm包,按照提示填写包的信息,如包名称、版本、描述、作者、许可证等。 在包的根目录下创建一个 index.js 文件,编写你的代码。 确认你已经注册了npm账号&#xff0…

深入浅出Pytorch函数——torch.max

分类目录:《深入浅出Pytorch函数》总目录 相关文章: 深入浅出Pytorch函数——torch.max 深入浅出Pytorch函数——torch.maximum torch.max有三种输入形式,根据其输入形式及参数的不同有下列三种返回形式: torch.max(input)&…

mysql进阶2——prosysql实现mysql读写分离

文章目录 一、读写分离方案类型1.1 最简单的读写分离1.2 多个读组或写组的分离模式 二、案例2.1 初始化操作2.2 mysql主添加proxysql连接用户2.3 Proxysql添加连接mysql集群参数2.4 添加健康检测用户2.5 添加读写分离的路由规则2.6 验证 一、读写分离方案类型 基本了解&#xf…

pytorch工具——pytorch中的autograd

目录 关于torch.tensor关于tensor的操作关于梯度gradients 关于torch.tensor 关于tensor的操作 x1torch.ones(3,3) xtorch.ones(2,2,requires_gradTrue) print(x1,\n,x)yx2 print(y) print(x.grad_fn) print(y.grad_fn)zy*y*3 outz.mean() print(z,out)注意 atorch.randn(2,…

音视频——压缩原理

H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛, 最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。 但为了用好H264,我们还是要对…

spring学习笔记七

一、自动装配 1.1、BookDao接口和实现类 public interface BookDao {void save(); } public class BookDaoImpl implements BookDao {public void save(){System.out.println("book dao save......");} } 1.2、BookService接口和实现类 public interface BookSer…

又一家车企陷「软件门」僵局,全栈自研成「疑难杂症」

过去几年,因为汽车智能化软件开发不及预期而造成的新车发布推迟,已经不是什么新鲜事。典型的代表,就是大众集团。 上周,因为PPE平台及软件开发问题,大众集团旗下豪华品牌奥迪宣布与上汽集团达成战略合作,联…

JVM分享

JVM分享 官网:https://docs.oracle.com/javase/specs/jvms/se8/html/index.html Java代码的执行流程 我们编写完之后的java文件如果要运行,java文件会编译成class文件,在jvm中运行时ClassLoader会加载class文件,加载进来之后&a…

mac电脑强大的解压缩软件BetterZip 5.3.4 for Mac中文版及betterzip怎么压缩

BetterZip 5.3.4 for Mac 是Mac系统平台上一款功能强大的文件解压缩软件,不必解压就能快速地检查压缩文档。它能执行文件之间的合并并提供密码。使用它,用户可以更快捷的向压缩文件中添加和删除文件。它支持包括zip、gz、bz、bz2、tar、tgz、tbz、rar、7…

Langchain 的 Validate template

Langchain 的 Validate template 默认情况下, PromptTemplate 将通过检查 input_variables 是否与 template 中定义的变量匹配来验证 template 字符串。您可以通过将 validate_template 设置为 False 来禁用此行为。 template "I am learning langchain beca…

nfs服务器的描述,搭建和使用

前言 这是我在这个网站整理的笔记,关注我,接下来还会持续更新。 作者:RodmaChen nfs服务器的描述,搭建和使用 NFS概述工作原理优缺点 nfs服务器搭建服务端客户端 NFS概述 NFS(Network File System)是一种基…

Webpack5 对bundle分析

文章目录 为什么要对bundle分析使用BundleAnalyzerPlugin 为什么要对bundle分析 bundle是Webpack打包的产物,通过分析bundle包的大小和模块关系等信息,我们可以更好地理解代码打包结果,并且继续优化 bundle 大小和性能。 使用BundleAnalyze…

Go 语言入门指南

Go 语言入门指南 学一门语言先看看helloworld吧,感觉go结合了好多语言的方式,写起来一会像python一会像c,java差不多。反正语法挺奇特 package mainimport "fmt"func main() {fmt.Println("HelloWorld") }go语言特点&a…

UE虚幻引擎教程_生成云平台指定路径下的exe文件

市面上大量优秀的游戏都是基于UE制作的,UE虚幻引擎制作的作品可以在windows、mac、linux以及ps4、x-boxone、ios、android甚至是html5等平台上运行。本文介绍了UE虚幻引擎如何生成云平台指定路径下的EXE。 一、云平台会运行打包文件夹下指定路径的EXE文件 但有时候…

几道有关spring boot 的面试题

面试题1:什么是Spring Boot?它有哪些主要特点? 答:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。使用Spring Boot可以非常快速地开发出生…

13.3 【Linux】主机的细部权限规划:ACL 的使用

13.3.1 什么是 ACL 与如何支持启动 ACL ACL 是 Access Control List 的缩写,主要的目的是在提供传统的 owner,group,others 的read,write,execute 权限之外的细部权限设置。ACL 可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范,对…

使用rknn-toolkit2把YOLOV5部署到OK3588上

使用rknn-toolkit2把YOLOV5部署到OK3588上 虚拟环境搭建软件包安装在PC机上运行yolov5目标检测 虚拟环境搭建 首先在PC的ubuntu系统安装虚拟环境: 我的服务器是ubuntu18.04版本,所以安装python3.6 conda create -n ok3588 python3.6 需要键盘输入y&…

蓝桥杯专题-真题版含答案-【垒骰子_动态规划】【抽签】【平方怪圈】【凑算式】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…