前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用grpc C++功能

使用grpc C++功能

作者头像
杉枫
发布2019-07-08 23:02:18
5.1K0
发布2019-07-08 23:02:18
举报

pkg-config:

简介:

https://www.tianmaying.com/tutorial/pkgconfig

makefile文件:

介绍

https://seisman.github.io/how-to-write-makefile/introduction.html

autoconf automake

介绍

http://www.laruence.com/2009/11/18/1154.html

Libtool

介绍

https://zh.wikipedia.org/wiki/Libtool

https://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/index.html

shtool

介绍

https://www.gnu.org/software/shtool/

gflags

介绍

https://blog.csdn.net/jcjc918/article/details/50876613

Protocol Buffer

介绍

https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html

https://colobu.com/2015/01/07/Protobuf-language-guide/

brew是mac下安装工具命令

安装grpc相关

A、https://tcspecial.iteye.com/blog/2437365

一. 准备编译环境

安装各种依赖库,详见:Pre-requisites

Shell代码

收藏代码
收藏代码
  1. brew install autoconf automake libtool shtool gflags

二. 安装protobuf3

Shell代码

收藏代码
收藏代码
  1. git clone https://github.com/google/protobuf.git
  2. cd protobuf
  3. git checkout v3.5.0
  4. sh ./autogen.sh
  5. ./configure --prefix=/usr/local/protobuf/
  6. make && make install

三. 安装grpc

Shell代码

收藏代码
收藏代码
  1. git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
  2. cd grpc
  3. git submodule update --init
  4. make && make install

编译成功后会在/usr/local/bin/ 生成grpc各语言插件,如grpc_cpp_plugin,grpc_php_plugin等。

四. helloworld教程

详见:gRPC C++ Hello World

4.1 编译proto

Proto代码

收藏代码
收藏代码
  1. syntax = "proto3";
  2. option java_package = "ex.grpc";
  3. package helloworld;
  4. // The greeting service definition.
  5. service Greeter {
  6. // Sends a greeting
  7. rpc SayHello (HelloRequest) returns (HelloReply) {}
  8. }
  9. // The request message containing the user's name.
  10. message HelloRequest {
  11. string name = 1;
  12. }
  13. // The response message containing the greetings
  14. message HelloReply {
  15. string message = 1;
  16. }

4.2 生成stub

Shell代码

收藏代码
收藏代码
  1. protoc --cpp_out=. helloworld.proto
  2. protoc --grpc_out=. --plugin=protoc-gen-grpc=/usr/local/bin/grpc_cpp_plugin helloworld.proto

4.3 编译运行

Makefile是通过pkg-config方式来查找protobuf, grpc库位置,可直接修改Makefile 指定protobuf, grpc库位置编译。

./greeter_server

./greeter_client

客户端打印hello world

B https://www.jianshu.com/p/3479272f90bb

在着手 C++ 的 TensorFlow serving mnist client 的过程中,不断采坑,被环境安装折磨的不行。现本着学习回顾,特总结,方便后面同学避免在环境搭建上出现问题。本次完全新建了个环境,在新环境上实验成功。系统为: Ubuntu 16.04.

如果你只是单纯的想安装 protobuf 那么对于安装的 protobuf 版本并没有要求。但是如果要安装 gRPC 的话,那么需要和 gRPC 版本有所对应,否则私自安装个 protobuf 并没有太大意义,因为 clone 下来的 grpc 文件夹里就有对应的文件夹,在这里安装 protobuf 可以保证安装 grpc 不出错。安装 grpc 不建议先单独编译安装 protobuf,但是本着学习的目的,下面依次介绍了单独安装 protobuf 和安装 grpc&protobuf 的方法。

安装 protobuf

1.下载 protobuf 并解压。下载地址:https://github.com/google/protobuf/releases

2.进入解压后的文件目录,执行如下操作:

  • ./configure

通常建议安装到 /usr/local 目录下,执行 configure 时,指定 --prefix=/usr/local/protobuf 即可

  • make
  • make check
  • sudo make install

3.安装成功后,将它的 binlib 目录分别加入到 PATH 和 LD_LIBRARY_PATH 环境变量,以方便直接调用。

设置环境变量过程:编辑 /etc/profile,在文件末尾添加:

代码语言:javascript
复制
export PATH=$PATH:/usr/local/protobuf/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib

安装 gRPC

1.安装依赖:

  • 首先安装 pkg-configsudo apt-get install pkg-config
  • 然后安装依赖文件:
代码语言:javascript
复制
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

代码语言:javascript
复制
git clone https://github.com/grpc/grpc.git
cd grpc
git submodule update --init  //更新第三方源码

4.安装 protobuf 源码:

代码语言:javascript
复制
cd third_party/protobuf/
git submodule update --init --recursive    //确保克隆子模块,更新第三方源码
./autogen.sh    //生成配置脚本
./configure    //生成Makefile文件,为下一步的编译做准备,可以加上安装路径:--prefix=path
make          //从Makefile读取指令,然后编译
make check   //可能会报错,但是不影响
代码语言:javascript
复制
sudo make install

从 Makefile 读取指令,安装到指定位置,默认为 /usr/local/,也可以指定安装目录:--prefix=path。卸载的命令为 make uninstall

相关命令说明:

  • make clean:清除编译产生的可执行文件及目标文件 (object file,*.o)
  • make distclean:除了清除可执行文件和目标文件外,把 configure 所产生的 Makefile 也清除掉。
  • sudo ldconfig:更新共享库缓存
  • which protoc:查看软件的安装位置
  • protoc --version:检查是否安装成功

5.安装GRPC

代码语言:javascript
复制
cd ../..  //进入 grpc 根目录
make       //从Makefile读取指令,然后编译
代码语言:javascript
复制
sudo make install

从 Makefile 读取指令,安装到指定位置,默认为 /usr/local/,具体的位置在 binlib 目录下。

6.测试

在 gRPC 目录下:

代码语言:javascript
复制
cd examples/cpp/helloworld/
make                //编译
./greeter_server  //服务器
./greeter_client   //客户端

出现 Greeter received: Hello world 则表示安装成功。

作者:郑爽_Shaun 链接:https://www.jianshu.com/p/3479272f90bb 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

第一步安装protobuf不是必须的,因为第三方里面有protobuf安装。--------备注

C:

安装Homebrew mac下集成安装环境

https://blog.csdn.net/yemao_guyue/article/details/80575532

安装protobuf权限问题

https://blog.csdn.net/ccbrid/article/details/79169440

https://blog.csdn.net/qq_25147897/article/details/78544395

D:

编译demo

https://github.com/grpc/grpc/tree/master/examples/cpp/helloworld

编译demo问题

https://www.jianshu.com/p/cdbdda59e99f

拷贝protobuf头文件到usr/local下

mv protoc3/include/* /usr/local/include/

pkg-config编译问题

https://github.com/pjreddie/darknet/issues/916

E:linux下安装grpc

https://www.cnblogs.com/xuelisheng/p/10316431.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装 protobuf
  • 安装 gRPC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档