Windows GRPC源码编译C++库——详细步骤

这篇具有很好参考价值的文章主要介绍了Windows GRPC源码编译C++库——详细步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言:

一、环境准备

1.1、安装cmake

1.2、安装Perl

1.3、安装golang

1.4、安装Visual Studio (推荐2022)

1.5、安装git

1.6、安装yasm

1.7、安装,配置openssl库

二、源码下载

2.1、grpc源码下载

2.2、第三方库下载

三、编译源码

3.1、新建.build

3.2、生产解决方案

3.3、编译

错误1

错误2

错误3:

错误4

3.4、生产库

四、静态库分享


前言:

        GRPC,其实就是RPC框架的一种,前面带了一个g,代表是RPC中的大哥,龙头老大的意思,另外g也有global的意思,意思是全球化比较fashion,是一个高性能、开源和通用的 RPC 框架,基于ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。面向服务端和移动端,基于 HTTP/2 设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。

       本人之前编译过一次grpc源码,但是最近需要别的系统版本,编译起来居然用了一天半时间,索性,乘晚上安静之际,随手写下来,以备不时之需。 下面详细介绍grpc编译.

       最近有好多人私信我,希望帮助编译grpc库,没有及时看到信息。先将本人邮箱留下,有问题伙伴可以发送邮件,会在第一时间看到。邮箱:1255450653@qq.com.

一、环境准备

1.1、安装cmake

下载地址:https://cmake.org/download/

Windows GRPC源码编译C++库——详细步骤

注意:选择添加环境变量。

1.2、安装Perl

下载地址:https://jingyan.baidu.com/article/9f7e7ec0b798ae6f281554e9.html

Windows GRPC源码编译C++库——详细步骤

1.3、安装golang

下载地址:Go下载 - Go语言中文网 - Golang中文社区

Windows GRPC源码编译C++库——详细步骤

1.4、安装Visual Studio (推荐2022)

下载地址:https://visualstudio.microsoft.com/zh-hans/vs/

注意:windows sdk选择10.0.2以上版本。

1.5、安装git

参考:Git

这部分可省略,因为github库下载源码非常慢。还不如直接下载zip包来的快。

1.6、安装yasm

  下载网站:http://yasm.tortall.net/Download.html

 下载完成之后yasm-1.3.0-win64.exe。将其名字改为yasm.exe,并将目录添加到系统环境变量PATH路径当中。

打开cmd,验证如下:

Windows GRPC源码编译C++库——详细步骤

1.7、安装,配置openssl库

这步可以不用设置,跳过。

下载地址:https://download.csdn.net/download/ManagerUser/86510880

配置环境变量:

Windows GRPC源码编译C++库——详细步骤

 ok,至此,前期的准备工作就完成了。

二、源码下载

2.1、grpc源码下载

地址: GitHub - grpc/grpc: The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

下载zip速度较快。git 太慢了。

Windows GRPC源码编译C++库——详细步骤

2.2、第三方库下载

        grpc依赖了大量第三方库,但是光下载grpc源码,还不能完全下载 grpc依赖的库,网上有很多资料显示,用xxx命令,都是扯谈,没有半小时下载不下来,并且如果没有代理的话,会提示访问超时,完全不可用。

        下面介绍一种最原始方式,也是最可行的方法。

        不同版本grpc却依赖的库稍微有点差别,为了更为准确的了解grpc依赖的第三方库,就需要去grpc源码查看具体依赖的库。git上grpc源码根目录下third_party目录下,如图所示,所有蓝色库,都是需要我们手动下载。

         注意:grpc/third_party/cares/cares依赖库。

Windows GRPC源码编译C++库——详细步骤

 Windows GRPC源码编译C++库——详细步骤

将所有grpc依赖的库全部下载下来,并且拷贝到对于的目录下面。不能落下,否则在编译阶段报一些莫名的错误。

三、编译源码

3.1、新建.build

        在grpc根目录下新建.build文件夹

3.2、生成解决方案

      打开cmake  gui界面,选择source code和 build目录。

Windows GRPC源码编译C++库——详细步骤

 点击Configure,弹出如下界面

Windows GRPC源码编译C++库——详细步骤

选择Visual Studio版本和平台(x64或Win32)。点击Finish

Windows GRPC源码编译C++库——详细步骤

 库的安装目录尽量不要选择系统盘,要不在生产库文件时候,没有权限。

如果出现如下出错:

CMake Warning at third_party/abseil-cpp/CMakeLists.txt:70 (message):
A future Abseil release will default ABSL_PROPAGATE_CXX_STD to ON for CMake
3.8 and up. We recommend enabling this option to ensure your project still
builds correctly.

 这个错误忽略就行。网上说要勾选ABSL_PROPAGATE_CXX_STD大坑。

如果出现如下出错:

CMake Warning at cmake/ssl.cmake:55 (message):
gRPC_SSL_PROVIDER is "module" but BORINGSSL_ROOT_DIR is wrong
Call Stack (most recent call first):
CMakeLists.txt:255 (include)

将grpc_ssl_provider设置为package,就会自动去系统环境变量查找相应的库

再次Configure

Windows GRPC源码编译C++库——详细步骤

出现Configure done,说明configure完成。

点击Generate。

Windows GRPC源码编译C++库——详细步骤

 出现Generating done说明已经生产Visual Studio工程文件,可以去.build文件夹下去查看,

Windows GRPC源码编译C++库——详细步骤

 点击Open Project或者右键单击grpc.sln,打开项目,可以选择编译Debug和Release

Windows GRPC源码编译C++库——详细步骤

3.3、编译

Windows GRPC源码编译C++库——详细步骤

右键单击ALL_BUILD,选择生产,开始编译。

往往这个步骤是最让人痛苦的阶段。

错误1

fatal error C1083: 无法打开包括文件: “stdalign.h”: No such file or directory

【项目】->【属性】->选择widnows sdk 版本到最新安装的版本

Windows GRPC源码编译C++库——详细步骤

点击应用。确定。

错误2

error C2039: "Status": 不是 "google::protobuf::util" 的成员 
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 
error C2146: 语法错误: 缺少“;”(在标识符“Status”的前面) 

解决办法:

可能是protobuf版本太新了,最新的版本是4.0,推荐使用3.19,下载成功之后,解压,拷贝到third_party/protobuf目录下替换就可以了。重新Configure

Windows GRPC源码编译C++库——详细步骤

错误3:

error C2011: “sockaddr”:“struct”类型重定义 
error C2143: 语法错误: 缺少“}”(在“常数”的前面) 
error C2059: 语法错误:“常数”
error C2143: 语法错误: 缺少“;”(在“}”的前面) 
error C2011: “sockaddr_in”:“struct”类型重定义 
error C2011: “fd_set”:“struct”类型重定义

解决办法,参考:https://blog.csdn.net/weixin_41454036/article/details/108844486

错误4

error MSB8066: “D:\grpc-master\.build\CMakeFiles\1d6eed4bb9d57f066d15abcf1966767c\crypto_test_data.cc.rule;D:\g
rpc-master\third_party\boringssl-with-bazel\CMakeLists.txt”的自定义生成已退出,代码为 1。 [D:\grpc-master\.build\third_party\boringssl-with-bazel\crypto_test_data.vcxproj]

解决办法:

打开windows PowerShell

# 配置 GOPROXY 环境变量
$env:GOPROXY = "https://proxy.golang.com.cn,direct"
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
$env:GOPRIVATE = "git.mycompany.com,github.com/my/private

Windows GRPC源码编译C++库——详细步骤

 然后,重试编译。

Windows GRPC源码编译C++库——详细步骤

 编译完成。

3.4、生成库

Windows GRPC源码编译C++库——详细步骤

选择INSTALL,右键单击,生成。

Windows GRPC源码编译C++库——详细步骤

查看生产的库目录:

Windows GRPC源码编译C++库——详细步骤

 以上步骤win10系统,64位库,32位库请在cmake 平台选择Win32,重新按照步骤编辑即可。

 Release和Debug版本请在Visual Studio 解决方案配置选择即可。

四、静态库分享

      编译确实比较麻烦,我在编译解决参考了网上博客不下20篇,没有一篇博客能指导我顺利走下来,所有将静态库分享出来,不想编译的朋友直接下载,永久收取5个积分。

    32位静态库, debug版本和relase版本

    64位静态库, debug版本和release版本 

下载地址:
(8条消息) windowsgrpcc++静态库-C++文档类资源-CSDN文库https://download.csdn.net/download/ManagerUser/86510933文章来源地址https://www.toymoban.com/news/detail-402124.html

到了这里,关于Windows GRPC源码编译C++库——详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MinGW-w64的安装详细步骤(c/c++的编译器gcc、g++的windows版,win10、win11真实可用)

    MinGW(Minimalist GNU for Windows) 是一个用于 Windows 平台的开发工具集,它提供了一组 GNU 工具和库,可以用于编译和构建本地的 Windows 应用程序。 MinGW 的目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序。

    2024年02月13日
    浏览(82)
  • 【opencv】【GPU】windows10下opencv4.8.0-cuda C++版本源码编译教程

    提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 OpenCV是一个开源的计算机视觉库,包含了核心模块和扩展模块,提供了基础的图像处理和计算机视觉算法,以及一些机器学习工具。而OpenCV Contrib是OpenCV社区贡献的一组扩展模块之一,包含了一些较为

    2024年02月08日
    浏览(82)
  • 虚拟打印机开源项目clawPDF最新版本在Windows+Visual Studio 环境编译运行遇到的若干问题,以及虚拟打印机驱动的安装和彻底卸载详细图文步骤

    虚拟打印机开源项目clawPDF最新版本在Windows+Visual Studio 环境编译运行遇到的若干问题,以及虚拟打印机驱动的安装和彻底卸载详细图文步骤。 错误提示: 不支持此版本的 Visual Studio 无法打开以下项目。可能未安装项目类型,或此版本的 Visual Studio 可能不支持项目类型。 有关

    2024年02月22日
    浏览(70)
  • Windows JDK11编译步骤

      Windows操作系统不符合POSIX标准。但是有个工具可以解决这个问题,那就是cygwin。下载链接是Cygwin。然后是安装cygwin命令。代码如下:   注意要把Cygwin在环境变量path里排第一位,否则会报以下错误:   反正我的环境变量,无论是用户变量和系统变量,都把Cygwin放第一

    2024年02月05日
    浏览(34)
  • 《Git入门实践教程》前言+目录

    版本控制系统(VCS)在项目开发中异常重要,但和在校大学生的交流中知道,这个重要方向并未受到重视。具备这一技能,既是项目开发能力的体现,也可为各种面试加码。在学习体验后知道,Git多样化平台、多种操作方式、丰富的资源为业内人士提供了方便的同时,也造成

    2024年02月10日
    浏览(72)
  • FPGA学习实践之旅——前言及目录

    很早就有在博客中记录技术细节,分享一些自己体会的想法,拖着拖着也就到了现在。毕业至今已经半年有余,随着项目越来越深入,感觉可以慢慢进行总结工作了。趁着2024伊始,就先开个头吧,这篇博客暂时作为汇总篇,记录在这几个月以及之后从FPGA初学者到也算有一定

    2024年02月03日
    浏览(58)
  • QGIS源码编译步骤详解——官方新方案

      方案详细可见源码文件中INSTALL.md。   QGIS源码下载:https://github.com/qgis/QGIS/releases   建议3.16版本,本文源码版本3.16.3。   3.22版本编译后会出现大量关于inline的错误,暂时不知如何解决。 下载Cygwin64安装包,setup-x86_64.exe。 安装Cygwin64,并安装Flex、Bison。 Flex = 2.5.

    2024年02月06日
    浏览(34)
  • windows编译安卓源码记录

    Windows10 + vmware17 + ubuntu22 ubuntu环境设置 装完ubuntu系统后拖拽复制文件进去验证vmtools功能情况,如果vmtools异常很麻烦,试了n多方法,最后还是重新安装系统+vmtools解决, 装系统注意个性化选择,防止后面再改 右键displagy设置分辨率,语言等 配置后,中文显示 切换到root用户,方

    2024年02月02日
    浏览(42)
  • linux安装nginx详细步骤和make编译报错问题(保姆级)

    目录 1.安装依赖包 2.下载并解压安装包 3.安装nginx 3-1.源码编辑时常见错误解决方法 4.启动nginx服务 4-1.配置nginx.conf 5.重启nginx 6.若想使用外部主机访问nginx,需要关闭服务器防火墙或开放nginx服务端口,端口为上一步nginx.conf的配置端口           3-1.源码编辑时常见错误解决

    2024年02月09日
    浏览(64)
  • Windows进行以太坊源码的编译

    用Goland打开下载好的源码 ; 调整goland的setting; 需要设置的由GOROOT和GOPATH,GOROOT是本地go语言的环境,GOPATH里面存的是下载的依赖包存放的地方。 如果GOROOT显示添加错误,可以在下载的golang文件下的srcruntimeinternalsys中打开zversion.go,添加下面的语句: const theVersion = go1.17.

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包