记录:Windows上MSVC2017编译gRPC 1.36

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

github(不带库):https://github.com/gongjianbo/MyTestCode/tree/master/Qt/TestGPRC%E6%B5%8B%E8%AF%95%E4%BB%A3%E7%A0%81%EF%BC%8C%E4%B8%8D%E5%8C%85%E5%90%AB%E5%BA%93

我是用 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.proto

lib 列表加上 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龚建波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值