0.gRPC简介(略)
1.准备工作
工具:
下载并安装 git:https://git-scm.com/downloads
下载并安装 CMake:https://cmake.org/download/
下载并安装 perl:https://www.perl.org/get.html
下载并安装 golang:https://studygolang.com/dl
下载并安装 OpenSSL:https://openssl.en.softonic.com/
(对于 perl 和 NASM,好像是编译 OpenSSL 用到的,如果直接安装 OpenSSL 应该用不到;编译更新版本的时候参考 README 的流程,有些已经不用配置了)
装了之后系统环境变量没有的加上:
源码:
下载 gRPC 源码:https://github.com/grpc/grpc.git
(可以下发行版源码包解压,如果 github 下不下来可以用码云的镜像grpc-framework: gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计)
下载 gRPC 的第三方库:
如果可以科学上网,直接拉 submodule,不过既然可以科学上网了,可以试试 vcpkg 等包管理器直接安装 gRPC。
git clone -b tag名称 https://github.com/grpc/grpc.git
cd grpc
git submodule update --init
如果不能科学上网的话,就自己手动下载需要的第三方库。先找到 .gitmodules 文件查看需要下载的库,然后 clone 到 third_party 目录下,github 下不了可以去码云找镜像下载。
(备注:clone 下来的文件名记得一致,gitmodules里有两个库写了版本号,但是我切换之后编译有问题,所以全用的默认master分支)。
2.CMake 生成 VS 工程文件
环境都配置好后,打开 cmake-gui,先指定 build 目录和 install 目录。(Add Entry 添加 CMAKE_INSTALL_PREFIX)
点击 Config,选择编译器配置
修改 gRPC_SSL_PROVIDER 为 package 继续点 Config
Configuring done 之后点 Generate 生成工程文件
3.MSVC 编译
用 VS 打开 .build 目录下的 grpc.sln 工程文件,全部编译。编译完成后 INSTALL 子工程执行生成会把编译完成的库和头文件放到我们之前设置的安装目录下(如果文件夹没创建且该目录为管理员权限需要自己手动创建文件夹)。
4.Demo 测试
我的 Demo:
CSDN:https://download.csdn.net/download/gongjianbo1992/15676665
我是用 Qt Creator 写的 Demo,有几个需要注意的地方:
proto 分别生成 message 和 service 代码(分别为 pb.h/cc 和 grpc.pb.h/cc ):
protoc.exe --cpp_out=./ MyProto.proto
protoc.exe --grpc_out=./ --plugin=protoc-gen-grpc=grpc_cpp_plugin.exe MyProto.protolib 列表加上 OpenSSL 的两个 lib,我的是 libcrypto64MD.lib 和 libssl64MD.lib
lib 列表加上 Ws2_32
具体可以参照源码中的 examples 和百度。
5.参照
文档:http://grpc.mydoc.io/?t=58008
博客:https://blog.csdn.net/liyangbinbin/article/details/100134465
博客:https://blog.csdn.net/weixin_28927079/article/details/97262243
博客:https://blog.csdn.net/timyu007/article/details/107202684
博客:https://www.pressc.cn/930.html
博客:https://blog.csdn.net/Mr_zhliang/article/details/83546996