zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【洛谷4941】War2 状压Dp
    洛谷4623 [COCI2012-2013#6] BUREK
    洛谷1099 [NOIP2007] 树网的核
    【Jim】I am back (ง •_•)ง
    发个ZKW线段树板子测试一下代码高亮
    洛谷2764 最小路径覆盖问题
    洛谷1972 [SDOI2009]HH的项链
    bzoj1059 [ZJOI2007]矩阵游戏
    知识点整理--组合数学
    最大矩形问题总结
  • 原文地址:https://www.cnblogs.com/judes/p/15437731.html
Copyright © 2011-2022 走看看