Ubuntu18.04 gRPC编译安装

news/2024/10/27 7:41:36/

一、CMake版本检查

grpc编译cmake要求最低版本为3.15。首先,cmake -version 查看当前cmake版本,如果低于3.15,按照以下步骤进行安装。

1.1 卸载已经安装的旧版的CMake

sudo apt-get autoremove cmake

1.2 下载最新版本CMake

CMake下载地址,CMake当前最新版本为3.25.2.因为本人系统是arm架构,所以选择 linux aarch64,请按照自己的需求选择下载。
在这里插入图片描述

1.3 解压

将下载后的文件拷贝到自己的虚拟机或者云服务器的任意目录。再进行解压

tar -zxf cmake-3.25.2-linux-aarch64.tar.gz

1.4 创建软链接

注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt

sudo mv cmake-3.25.2-linux-aarch64   /opt/cmake-3.25.2
sudo ln -sf /opt/cmake-3.25.2/bin/*  /usr/bin/

1.5 测试

使用 cmake -version 命令查看cmake是否可以正常使用。
该吃吃-

二、gcc版本检查

gcc版本最低要求6.3

使用gcc -v 查看gcc当前版本,如果gcc/g++ 版本低于7.0,按照如下步骤进行升级安装;如果已经是高于7.0 则不需要再次安装。

2.1 安装

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install g++-7 -y

2.2 创建软连接并检查

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \--slave /usr/bin/g++ g++ /usr/bin/g++-7 
sudo update-alternatives --config gcc
gcc -v
g++ -v

三、grpc下载

3.1 源码下载

git clone  https://github.com/grpc/grpc

3.2 选择版本

这里选择v1.45.2相对较新的版本

git checkout v1.45.2

查看此时grpc目录内容的大小du -h --max-depth=1, 可以看到大概460M
在这里插入图片描述

3.3 下载第三方依赖库

这个过程会相对慢点,耐心等待。下载完,你会发现grpc目录内容会明显变大。

3.4 编译安装

mkdir -p build
cd build
cmake ..
make -j2
sudo make install

四、protobuf安装

不用手动安装protobuf,不然版本可能和grcp不匹配,必须在 grpc 执行 git submodule update --init 命令之后生成的 third_party/protobuf 里面编译安装对应的 protobuf。

cd third_party/protobuf/
./autogen.sh 
./configure --prefix=/usr/local
make -j2sudo make install
sudo ldconfig  # 使得新安装的动态库能被加载protoc --version   ## 显示对应protobuf的版本号

参考原文链接:https://zhuanlan.zhihu.com/p/528131323

推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:


http://www.ppmy.cn/news/21709.html

相关文章

VS2017编译gsf/surf/mbio —E0020 未定义标识符 “F_OK“

1、编译gsf报了一个错误: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E0020 未定义标识符 "F_OK" gsf d:\OceanMultiBeamProc\OceanMultiBeamProc\gsf\gsf\gsf_indx.c 286 C语言中access/_access函数的使…

公务机包机|公务飞行包机攻略解答

公务机是一种在行政事务和商业活动中用作交通工具的飞行,也被称为行政机或商用飞机。公务机包机程序简单,不仅可以享受不一致的尊崇服务,而且可以避免巨额投资和日常管理的繁琐事务。    公务机是指在行政事务和商业活动中用作交通工具的飞…

第29章 分布式缓存强制删除触发器定义实现之IEventPublisher

1 Core.Events.IEventPublisher namespace Core.Events { /// <summary> /// 【事件触发--接口】 /// <remarks> /// 摘要&#xff1a; /// 通过继承于该接口的具体实现类中的方法成员用于实例化缓存的强制移除句柄的实例&#xff0c;触发执行缓存的强制移除句…

第1章 MongoDB 教程

第1章 MongoDB 教程 MongoDB 是一个基于分布式文件存储的database。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系database和非关系database之间的产品&#xff0c;是非关系database当中功能最丰富&#xff0c;最像关系databa…

Biome-BGC生态系统模型与Python融合技术实践应用

查看原文>>> Biome-BGC生态系统模型与Python融合技术实践应用 Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数&#xff0c;模拟日尺度碳、水和氮通量的有效模型&#xff0c;其研究的空间尺度可以从点尺度扩展到陆地生态系统。 在Biome-BGC模型中&#xf…

cobaltstrike的shellcode免杀

基础概念 shellcode是一段用于利用软件漏洞而执行的代码&#xff0c;也可以认为是一段填充数据&#xff0c;shellcode为16进制的机器码&#xff0c;因为经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在暂存器eip溢出后&#xff0c;塞入一段可让CPU执行的s…

ADB 开启 USB调试后,无法自动弹出调试授权窗口的解决方法

之前介绍了 Android Device Unauthorized 的解决方案&#xff0c;这次将分享 开启 USB调试后&#xff0c;无法自动弹出调试授权窗口的解决方法。即使选择在 “仅充电” 的情况下去调试&#xff0c;结果都一样。 在我自己的工程机 (荣耀系列的) 连上电脑后&#xff0c;USB 连接方…

myBaits Target Capture Kits;myBaits 靶向捕获试剂盒,快速捕获富集目标序列

myBaits Target Capture Kits可以快速捕获富集目标序列&#xff0c;提高NGS研究效率&#xff0c;兼容Illumina&#xff0c;PacBio 和 Nanopore等多种测序平台。Arbor Biosciences使用oligo合成专利技术&#xff0c;为您提供高质量、高性价比的捕获试剂盒。适用于各种基因组类型…