Windows编译GRPC

 虽然之前有过CMake编译CTK框架的经验,但对本人而言,编译GRPC依旧是非常麻烦的事情,遇到了非常多的问题,包括GIT工程依赖的三方库、版本问题、依赖三方开发工具、VS版本等等。最大的问题还是来自于坑壁网友的垃圾教程,要么都是直接cpye,要么就不把坑说明白,经过10086次尝试,终于完成了第一次成功编译。如下:

一、环境准备

要知道为啥安装这些环境,官方已经给了答案

0、VS

这不用说了吧,本文用的是VS2019

1、Git

用于clone grpc相关源码到本地,如果不安装直接从Github上下载也可以不安装

2、CMake

需要安装,这种大型通用框架基本都是Cmake编译,本人安装的是

 3、Perl

编译boringssl时需要,本人安装的是

 4、Go

编译boringssl时需要,本人安装的是

5、yasm

编译boringssl时需要【这个很难找到,而且有的地址又说是安装nasm,我真的醉了】,反正我安装的是这个

 ,可以试试不安装,看会不会报错

根据我的参考的文章,只安装了VS2019、Perl、Go、CMake,我觉得应该是可以的,本人第一次尝试编译grpc就tm被这几个找不到安装包的软件搞得放弃了。

 本人会将相关包放在文章末尾链接,需要可自行下载。

二、GRPC代码获取

github仓库:https://github.com/grpc/grpc

本次编译版本:V1.23.0

解决gitbub访问慢:https://www.cnblogs.com/judes/p/14477855.html

网络慢真是个大问题,又是让我某次放弃的原因

1、网址直接下载

打开地址,选择V1.23.0版本,之前不知如何选版本,每次都下载最新master的,导致错误。

 点击右边code,下载ZIP

 2、git下载

下载指定版本

git clone -b v1.23.0 https://github.com/grpc/grpc.git

这里又是一个坑:网络很多xx教程都是直接让你直接clone master的代码下载,很可能出现问题,强烈建议去git网站手动下载指定版本

三、配置GRPC依赖的三方库

GRPC依赖了很多三方库,需要全部将其配置好,这些库在下载下来的GRPC的third_party里,初次下载下来里面全是空文件夹,所以需要配置。

每一个文件夹就是一个三方库,其对应在git上有自己的仓库。

这里又有两个坑:

①、有些教程说只需要下载那几个常用的,我反正试了没成功,为了保证万无一失,建议还是全部都下载,毕竟本文是全部下载后编译通过的

②、有些教程直接一句话带过,通过git指令来安装全部依赖库

git submodule update  --init

但是我敢说90%以上的普通电脑都不能轻松访问github,往往都会出错,写这些教程的xx真的试过吗?还是直接自己抄的?xx,大xx!

③、这些依赖库都是有版本的,我试过全部下载最新的master,编译出错,故需要下载与GRPC版本对应的三方库。

综上,建议:手动下载全部的三方依赖库到对应文件夹,但是如何找到对应版本的三方库呢?

其实Git仓库已经告诉我们了:

1、进入仓库,打开third_party文件夹

 每个三方库后面都加了一个@xxxxxxx,这个xxxxxx就是对应的其版本。

以第一个abseil-cpp为例,直接点击进入,就是对应版本的abseil-cpp仓库,同样以ZIP下载,放在本地third_party的对应文件夹里面。

 2、解压,然后将解压后的内容拷贝到abseil-cpp根目录,即:abseil-cpp文件里不能有多级目录

如下:

 同样的操作,把这些三方依赖库全部下载解压

四、生成解决方案

这里又有两个版本,用CMake_GUI配置、用CMake命令行,这里用的是命令行

1、在GRPC根目录下新建文件夹.build

2、打开cmd,进入.build文件夹

3.用CMake命令行生成VS解决方案

cmake .. -G "Visual Studio 16 2019" -A Win32

这里需要注意:其他版本的VS命令行不一样;

如果是64位则:

cmake .. -G "Visual Studio 16 2019" -A x64

如果是其他版本如VS2015

cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release     //VS2015 64位 Release
cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Debug     //VS2015 64位Debug 
cmake .. -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Debug         //VS2015 32位Debug
....

经过漫长等待,在.build文件夹里生成了解决方案【注意这里可能会报很多文件not found,不用管】

 五、编译安装

1、打开VS2019

2、打开grpc.sln解决方案

3、右键ALL_BUILD,选择生成

这里又有一个坑:这个解决方案里有很多很多的工程,有些xx教程依赖就说“打开解决方案,编译即可生成依赖库”,我xxxxx,这样说谁xx知道编译哪个工程,真是醉了。

这里我直接说明:是对ALL_BUILD进行编译,也就是右键点击生成

4、等待许久,提示成功xxx个,失败0个【也就这也顺利,我试了n次其他的都是各种失败】

这里打印信息被冲掉了,就不贴图了

5、安装

选择INSTALL工程,右键生成

 经过安装,成功

 在C:\Program Files (x86)\grpc下就能得到需要的GRPC库,呜呜呜,终于成功了

参考了10086篇教程,就这哥们的有用,致敬!!

https://blog.csdn.net/weixin_43655901/article/details/118995526

 Grpc官网:https://www.grpc.io/

本文相关的安装包和生成的结果,可直接下载:

需要提前安装的软件:https://download.csdn.net/download/m0_53292003/35603214

可直接编译的GRPC包:https://download.csdn.net/download/m0_53292003/35604690

原文地址:https://www.cnblogs.com/judes/p/15437731.html