ubuntu安装gRPC

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

搭建环境浪费花费很多时间,在此希望大家少走弯路,跟着操作,一气呵成。

在自己ubuntu上安装gRPC练手。官网上给出了对应的安装方法,gRPC +protobuf。

安装步骤

1. 安装相关依赖工具

1
2
3
4
5
6
7
8
9
10
11
#安装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 源码

1
2
3
4
5
git clone https://github.com/grpc/grpc.git

 cd grpc

 git submodule update --init  #更新第三方源码

3.安装protobuf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#此时应保证在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

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