ubuntu+安装Google Protobuf 库

本文参考文章如下

https://blog.csdn.net/wzw1609119742/article/details/119712422#t18https://blog.csdn.net/j8267643/article/details/134133091https://blog.csdn.net/jax_fanyang/article/details/135937002?spm=1001.2014.3001.5502

现在论坛上据大部分的教程都是下面图片的步骤

但是现在2024年已经不能用这种方法了

下载完安装包之后,里面没有autogen.sh这些脚本

他们的教程太老了

建议大家看我的方法

———————————————————————————————————————————

第一步,下载protobuf安装包。打开终端,输入下面的命令

git clone https://github.com/protocolbuffers/protobuf.git

第二步,输入 cd protobuf命令

然后输入下面的命令,安装所需的依赖

git submodule update --init --recursive

第三步,重新进入终端,输入cd protobuf/cmake命令

然后输入mkdir build命令

然后输入cd build命令

然后输入mkdir release命令

然后输入cd release命令

然后输入下面的命令

cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../../install/release -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_WITH_ZLIB=OFF -Dprotobuf_BUILD_TESTS=OFF ../../..

效果图如下(注意命令前面的路径)

第四步,输入make -j8

j后面的数字,是自己的电脑配置线程,自己看一下自己的配置,不知道的话。就输入下面的命令

make -j

第五步,make install

第五步,检查是否安装成功,输入下面的命令

cd /protobuf/install/release/bin

./protoc --version

上面的路径,是cmake时候写的路径,下面写的

CMAKE_INSTALL_PREFIX=../../../install/release

如果能看到他的版本则,安装成功,终端图如下

文件夹效果如下图

第六步,添加到环境变量

在终端输入命令gedit ~/.bashrc

添加在文档最下面,内容如下,路径要改成自己的,改完的效果看下面的图片
    #(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
    #(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
    export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
    #执⾏程序搜索路径
    export PATH=$PATH:/usr/local/protobuf/bin/
    #c程序头⽂件搜索路径
    export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
    #c++程序头⽂件搜索路径
    export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
    #pkg-config 路径
    export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

然后在终端输入source ~/.bashrc

第七步,检查,在终端输入命令protoc --version,如果出现版本信息则安装成功。

libprotoc 3.21.12

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

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

相关文章

树莓派使用总结

手上拿到了一块Raspberry Pi 4B板子。研究一下怎么用。 安装系统 直接到官网【Raspberry Pi 】下载在线安装助手 安装好后,打开软件,选择好板子型号、系统、TF卡,一路下一步就行。 树莓派接口 直接查看官方的资料【Raspberry Pi hardwar…

(C++) 稀疏表Sparse Table

目录 一、介绍 1.1 倍增 1.2 稀疏表ST 二、原理 三、代码实现 3.1 创建稀疏表 3.2 初始化数值 3.3 ST查询 一、介绍 1.1 倍增 倍增的思想是在数据空间特别大的时候,快速进行查找搜索而使用的。例如想要在一个数据量为n的递增数组中查找到等于x的下标&#x…

【6个好玩的linux终端程序】----做一个有趣的IT男

【6个好玩的linux终端程序】----做一个有趣的IT男 一、ASCIIquarium--水族馆二、cmatrix--矩阵代码三、cowsay --会说话的小牛四、sl --火车动画五、fortune--随机名言警句六、bastet-俄罗斯方块 💖The Begin💖点点关注,收藏不迷路&#x1f4…

Jackson 2.x 系列【25】Spring Boot 集成之起步依赖、自动配置

有道无术,术尚可求,有术无道,止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址:https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 前言2. 起步依赖3. 自动配置3.1 JacksonPrope…

数学建模-最优包衣厚度终点判别法-二(K-Means聚类)

💞💞 前言 hello hello~ ,这里是viperrrrrrr~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#xff…

C语言---单链表(二)

文章目录 前言1.准备工作2,打印链表、创建新的节点、销毁链表2.1.打印链表2.2.创建节点2.3.销毁链表 3.尾插、头插、尾删、头删3.1.尾插3.2.头插3.3.尾删3.4.头删 4.在特殊位置之前、之后插入、删除以及查找节点4.1.查找节点4.2.在指定位置之前插入4.3.在指定位置之后插入数组4…

Java入门学习Day05

本篇文章主要有创建package、关系运算符、逻辑运算符、三元运算符和其对应的实例。 一、创建package 创建一个包,把我们之前或之后用到的运算符代码都放到这个package里,方面管理。 包的命名通常是公司的网站名称倒着写(com.mayin),再加上…

【错题集-编程题】dd爱框框(同向双指针 / 滑动窗口)

题目链接&#xff1a;dd爱框框 (nowcoder.com) 一、分析题目 同向双指针&#xff08;其实也就是滑动窗口&#xff09;。 进窗口&#xff08;sum arr[right]&#xff09;判断&#xff08;sum > x&#xff09;更新结果&#xff08;right-left1 < retlen retl left re…

Day99:云上攻防-云原生篇K8s安全实战场景攻击Pod污点Taint横向移动容器逃逸

目录 云原生-K8s安全-横向移动-污点Taint 云原生-K8s安全-Kubernetes实战场景 知识点&#xff1a; 1、云原生-K8s安全-横向移动-污点Taint 2、云原生-K8s安全-Kubernetes实战场景 云原生-K8s安全-横向移动-污点Taint 如何判断实战中能否利用污点Taint&#xff1f; 设置污点…

【御控物联】Java JSON结构转换(3):对象To对象——多层属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、案例之《JSON对象 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0c;生成新的JS…

1 GBDT:梯度提升决策树

1 前言 前面简单梳理的基本的决策树算法&#xff0c;那么如何更好的使用这个基础算法模型去优化我们的结果是本节要探索的主要内容。 梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff09;是一种集成学习方法&#xff0c;通常用于解决回归和分类问题。它通…

【Redis 神秘大陆】009 案例实践进阶

九、案例实践&进阶方案 9.1 本地缓存组件选型 使用缓存组件时需要重点关注集群方式、集群、缓存命中率。 需要关注集群组建方式、缓存统计&#xff1b;还需要考虑缓存开发语言对缓存的影响&#xff0c;如对于JAVA开发的缓存需要考虑GC的影响&#xff1b;最后还要特别关注…