欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu16.04 安装gRPC

程序员文章站 2024-03-14 14:17:16
...

Ubuntu16.04 安装gRPC

2018-7-23

gRPC是什么,可以参考官方说明:https://grpc.io/docs/

后期工作会用gRPC来实现客户端和服务器的程序调用,所以在自己ubuntu上安装gRPC练手。官网上给出了对应的安装方法,但是官网这种存在,真的只是参考就好,别当真。我就是因为太信任官网,导致用了多半天时间才装好gRPC +protobuf。

后来是同时参考了网上其他人的经验,最终装成功。

安装步骤
1. 安装相关依赖工具

#安装pkg-config
sudo apt-get install pkg-config
#安装依赖文件
sudo apt-get install autoconf automake libtool make g++ unzip
sudo apt-get install libgflags-dev libgtest-dev
sudo apt-get install clang libc++-dev

2.下载gRPC 源码

 git clone https://github.com/grpc/grpc.git
 cd grpc
 git submodule update --init  #更新第三方源码

3.安装protobuf

#此时应保证在grpc文件夹下
cd third_party/protobuf/
git submodule update --init --recursive #确保克隆子模块,更新第三方源码
sudo ./autogen.sh   #生成配置脚本
sudo ./configure    #生成Makefile文件,为下一步的编译做准备,可以加上安装路径:--prefix=path ,默认路径为/usr/local/
sudo make           #从Makefile读取指令,然后编译
sudo make check     #可能会报错,但是不影响,对于安装流程没有实质性用处,可以跳过该步
sudo make install 
sudo ldconfig       #更新共享库缓存
which protoc        #查看软件的安装位置
protoc --version    #检查是否安装成功
###一下为对make命令的补充,不运行:
# 卸载命令:make uninstall
# 清除编译产生的可执行文件及目标文件:make clean
# 除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉:make distclean

4.安装gRPC

cd ../..  #到达grpc根文件夹下
make   #编译

至此可能出现错误:
/usr/bin/ld: warning: libprotobuf.so.15, needed by //usr/local/lib/libprotoc.so, may conflict with libprotobuf.so.9
这是因为电脑安装了两个不同版本的protobuf(ubuntu16默认已经安装了protobuf.so.9这系列的,新装的是protobuf.so.15系列的)。
解决办法:
卸载掉老版本的protobu:

sudo apt-get remove libprotobuf-dev

重新运行make命令;
继续运行下面命令:

sudo make install  #编译安装,默认安装位置为/usr/local/

至此,成功安装gRPC和protobuf。
5.测试
利用rgpc中的自带程序测试:

cd examples/cpp/helloworld/
sudo make   #如果此处出错,可能就是安装有问题了
sudo ./greeter_server   #运行server,监听50051端口
#打开一个新的终端运行client
sudo ./greeter_client
#就可以看到返回结果:Greeter received: Hello world

至此,安装完毕,测试完毕。
以上。

注:如果在运行命令后出现奇怪的报错,可以先尝试在命令前加sudo,用root权限,可能有奇效。

参考:
[1]官方:https://github.com/grpc/grpc/blob/master/BUILDING.md
[2]亲测可用:https://blog.csdn.net/mou_it/article/details/79846066

相关标签: gRPC