文章目录
基本情况
起因
最近由于实验需要,要在树莓派和PC上使用RPC通信并互相调用代码,就先选定了谷歌出品的gRPC来作为初始框架。
但是在gRPC的github主页上是没有专门针对在ARM/树莓派上源码编译gRPC的步骤,今天我在做的时候也陆陆续续踩了一些坑,在这里分享给大家处理的方式。
实验环境详情
gRPC
从其官方Github repo下载的,版本为1.27.3
。
树莓派
树莓派我使用的是较新一款的Raspberry Pi 4B,4G内存的版本。
系统信息:
❯ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
CPU信息:
❯ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 3 (v7l)
BogoMIPS : 108.00
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd08
CPU revision : 3
... # 以下省略
Ubuntu
Ubuntu 18.06是我在虚拟机里面安装的,具体配置为2x2线程,8G内存。
编译安装步骤
基本遵循gRPC官方的编译步骤
1. 下载源码
$ git clone -b RELEASE_TAG_HERE https://github.com/grpc/grpc # RELEASE_TAG_HERE这里我使用的是1.27.3
$ cd grpc
$ git submodule update --init
2. 安装依赖
$ sudo apt install build-essential autoconf libtool pkg-config
gRPC官方提供了很多种编译的方式,比如Bazel(官方推荐)、CMake、VS Studio(只支持Windows)和Ninja(Windows)。但是我毕竟还是更加熟悉CMake,最终还是采用了它。
所以下一步安装CMake。