官方文档
一:系统环境
建议高版本的操作系统,我使用的是ubuntu 20.04,他安装的g++,可以支持c++17,同时cmake 版本也大于官方给的最低版本3.13
你可以直接输入g++ 或cmake,按照终端输出的提示安装g++和cmake的版本就能满足grpc的编译要求
二:安装过程
也考参考
详细安装建议以官方的为主,可以跳过关于cmake和g++相关的说明,拉取源码
我只提示需要注意的地方
1、前置条件(c++,cmake需要提前安装)
sudo apt install -y build-essential autoconf libtool pkg-config
2、源码拉取,这一步下载比较久,可以用百度网盘弄,
链接:https://pan.baidu.com/s/12Gsv0TbFJ8xvOUr-kRPBFA
提取码:3mb1
这是我自己用梯子下好的源码,相当于下面的命令
git clone --recurse-submodules -b v1.38.0 https://github.com/grpc/grpc
三:错误提示
1、error: no matching function for call to 'StrFormat(…)。
解决:
因为是最新代码所以g++要支持c++17
2、Killed signal terminated program cc1plus compilation ,这是内存不够的问题
解决:创建一个交换分区当内存来使用
说明:在用虚拟机的时候会有一个自启动的4G交换区 /swapfile.img,会默认使用自带的交换分区,作为新手我也不是很明白怎么让他使用我们创建的交换分区,所以我直接删除了,然后重启(不重启应该也没事),最后在重新创建一个24G的交换分区
删除自带的
#需要先关闭
swapoff /swapfile.img
#删除与sawpfile.ima 相关的那一行
sudo vim /etc/fstab
创建自己的
#相当于24G
dd if=/dev/zero of=/var/swapfile bs=12k count=2048000
#制作交换分区
mkswap /var/swapfile
#开启分区
swapon /var/swapfile
#查看交换分区的开启状态
swapon -s
#查看分区是否已经用上了
free
四:再次重申,用高版本系统,能省去你很多事情