gRPC没有提供C++版本的ubuntu 16.04 预编译包,所以需要通过源码自行编译安装。
官方git库地址:https://github.com/grpc/grpc
由于github上部分较大的库下载很慢,所以我把所有相关的库镜像到国内的gitee上了,地址:https://gitee.com/zch-grpc/grpc

  1. 下载代码:
git clone https://gitee.com/zch-grpc/grpc.git
cd grpc
  1. 选择要编译的版本,我选择的版本是v1.32.0
git checkout origin/zch-v1.32.0
  1. 根据相应版本的编译说明编译安装,参考https://github.com/grpc/grpc/blob/v1.32.0/BUILDING.md

    1. 下载依赖项,为了从gitee下载依赖项,我从tag v1.32.0创建了分支zch-v1.32.0,修改了.gitmodules文件中的库路径,如果选择其他版本可以参考修改
git submodule update --init

特殊说明:根据官方文档的说明,想要使用cmake编译并安装时,如果cmake版本低于3.13,需要使用以下命令生成makefile:

cmake ../..   -DgRPC_INSTALL=ON                \-DCMAKE_BUILD_TYPE=Release       \-DgRPC_ABSL_PROVIDER=package     \-DgRPC_CARES_PROVIDER=package    \-DgRPC_PROTOBUF_PROVIDER=package \-DgRPC_SSL_PROVIDER=package      \-DgRPC_ZLIB_PROVIDER=package

生成过程中可能会提示absl库找不到等错误,此时说明系统中没有预安装这些库,需要先安装相应的库。
以absl为例,下载依赖项时已经将源码下载到third_party/abseil-cpp目录下,只需要到该目录下进行编译安装即可,注意:需要编译安装动态库(.so)版本

cd third_party/abseil-cpp
mkdir build
cd build
cmake -DCMAKE_CXX_STANDARD=11 -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
cd ../../..
2. 编译安装
mkdir -p cmake/build
cd cmake/build
cmake ../..   -DgRPC_INSTALL=ON                \-DCMAKE_BUILD_TYPE=Release       \-DgRPC_ABSL_PROVIDER=package     \-DgRPC_SSL_PROVIDER=package      \-DgRPC_ZLIB_PROVIDER=package     \-DgRPC_RE2_PROVIDER=package
make
sudo make install

注意:如果cmake时有类似 gRPC_INSTALL will be forced to FALSE because gRPC_RE2_PROVIDER is “module” 输出说明需要将相应的模块设置为package模式才能实现grpc安装,如果改为package模式后cmake提示找不到相应的模块,需要手工安装该模块。
3. 编译示例程序,验证

cd examples/cpp/helloworld
mkdir build
cd build
cmake ..
make

先运行 ./greeter_server
再运行 ./greeter_client
会输出

Greeter received: Hello world

说明安装运行正确。

  1. 与python版本交互

python版本的安装并没有碰到问题,就不特殊说明了,请参考官方文档。

在另外一台机器上运行python版本的server:

cd examples/python3
python3 greeter_server.py

在本地运行C++版本的client,需要指定服务器地址和端口:

./greeter_client --target=172.17.0.2:50051

同样会输出:

Greeter received: Hello, world!

说明安装运行正确。

ubuntu 16.04 安装 gRPC for C++相关推荐

  1. Ubuntu 16.04 安装后修改屏幕分辨率(xrandr: Failed to get size of gamma for output default)

    ubuntu 16.04 安装后分辨率只有一个选项 1024x768,使用 xrandr 命令出现错误: xrandr: Failed to get size of gamma for output ...

  2. 16.04linux 安装微信,Ubuntu 16.04安装微信的过程记录

    微信没有出Linux的版本,但是可以通过以下方式解决: 1.使用网页版,除了没有公众号之后,一切都没问题,包括传文件等. 2.使用第三方版本,只不过这个是桌面应用,原理是通过网页API集成的,稳定性还 ...

  3. Ubuntu 16.04 安装 Wireshark分析tcpdump的pcap包——sudo apt install wireshark-qt

    tcpdump 的抓包保存到文件的命令参数是-w xxx.cap 抓eth1的包  tcpdump -i eth1 -w /tmp/xxx.cap  抓 192.168.1.123的包  tcpdum ...

  4. Ubuntu 16.04 安装 caffe

    Ubuntu16.04安装Caffe最全最详细教程(CPU) 由于本人电脑不支持GPU,故选择CPU安装caffe.具体查看方式:键入命令: lspci | grep -i nvidia ,若按回车之 ...

  5. linux打开vivado_ubuntu启动vivado UBUNTU 16.04安装VIVADO成功启动SDK - Linux - 服务器之家...

    ubuntu启动vivado UBUNTU 16.04安装VIVADO&&成功启动SDK 发布时间:2017-04-25 来源:服务器之家 在UNBUNTU 16.04 64位 系统下 ...

  6. Ubuntu 16.04安装Tomcat 8 图解

    Ubuntu 16.04安装Tomcat 8 图解 Linux公社 10-18 00:00 Tomcat是由Apache开发的一款免费且开源的轻量级Web应用服务器,Tomcat8服务器在中小企业中得 ...

  7. linux安装tensorflow教程,Ubuntu 16.04 安装 TensorFlow(GPU支持)

    本文记录Ubuntu 16.04安装Tensorflow步骤,也包括怎么从源码编译安装Tensorflow. 要想安装Tensorflow GPU版本,你需要有一个新一点的Nvidia显卡. Tens ...

  8. Ubuntu 16.04安装Cobbler 2.9

    Ubuntu 16.04安装Cobbler 2.9: 注: 1.Cobbler 2.9新增uefi支持 2.Cobbler 2.9依赖syslinux 6.x版本支持 apt-get install ...

  9. Ubuntu 16.04安装Memcached(单机)

    Ubuntu 16.04安装Memcached,不过不仅限与Ubuntu,可以用CentOS等去安装,只不过测试时使用的是Ubuntu机器.Windows下不建议使用,本机调试可以使用,线上环境除了W ...

最新文章

  1. css超出一行添加省略号属性
  2. 彻底理解H5的DOM事件
  3. 城市需要建什么样的能源数据中心?
  4. 三面美团Java岗,尚学堂java马士兵全套
  5. python中typeerror是什么意思_TypeError:在Python中
  6. python集合的练习
  7. php 32位检签,php crc32 计算字符串的 32 位 CRC(循环冗余校验)
  8. Android 自定义View关于measure流程的基本思路整理
  9. centos 编译Qt5 mysql驱动_centos7安装编译mysql的驱动的问题
  10. 【老牌系统】如何增大C盘空间
  11. 印刷电路板(PCB)基础
  12. 《挑战不可能之加油中国》中越边境广西段扫雷队整装亮相
  13. DEV中右键菜单如何只在非空单元格上显示?
  14. angular8.x + ngx-translate实现国际化
  15. 数字电路28(设计步骤及十进制加计数器设计)
  16. 通过js的File对象获取图片的base64字符串
  17. 浅析ARM公司在物联网领域的战略布局
  18. Cisco与H3C交换机互联的小风波
  19. pytorch b站练习-5
  20. mysql 时间 本周 本月_日本人脑洞最大的奇葩恋爱游戏,本周上架Steam,别在吃饭时玩...

热门文章

  1. 配置VS Code 使其支持vue项目断点调试
  2. 学计算机一定懂电脑维修吗,电脑维修不求人教你自学电脑维修.doc
  3. SELinux 关闭方法
  4. 机器学习——特征工程(3分钟的超详细介绍)
  5. AndroidP (9.0) 功能和 API
  6. linux+redis实战个人学习笔记(一)
  7. JumpServer 堡垒机
  8. oracle 启动 linux监听,Linux下启动Oracle服务和监听程序
  9. 用Qt写一个简单的音乐播放器(七):界面美化(QSS样式表)
  10. JuiceSSH - SSH Client(Android免费的SSH客户端)