在Windows和Linux上编译gRPC源码操作步骤(C++)

2023-05-16

gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程。

Windows7/10 vs2103编译gRPC源码操作步骤

1. 需要本机已安装Git、CMake、Perl、Go、yasm;

2. 依次执行如下命令:

git clone https://github.com/grpc/grpc
git checkout v1.23.x
git submodule update --init
mkdir -p .build
cd .build
cmake .. -G "Visual Studio 12 2013 Win64" # 生成grpc.sln工程
cmake --build . --config Release # cmake --build . --config Debug

         3. 执行完以上命令后会在.build目录下生成grpc.sln工程,但是在build时会出现很多错误,原因是source中使用了一些在vs2013中还没有支持的C++11特性,如constexpr等,如下图所示:

因此想要编译gRPC在windows下需要使用vs2015及以上版本才可以,使用其它vs版本编译gRPC时,步骤与上面相同,只需将

cmake .. -G "Visual Studio 12 2013 Win64"

调整为以下语句之一就可以,下面是使用vs2017编译生成的结果,如下图:

cmake .. -G "Visual Studio 14 2015 Win64" # vs2015
cmake .. -G "Visual Studio 15 2017 Win64" # vs2017

Linux gcc4.9.4编译gRPC源码操作步骤

1. 根据本机情况安装相应依赖性:

sudo apt-get install build-essential autoconf libtool pkg-config
sudo apt-get install libgflags-dev libgtest-dev
sudo apt-get install clang-5.0 libc++-dev

2. 依次执行如下命令:

git clone https://github.com/grpc/grpc
git checkout v1.23.x
git submodule update --init
mkdir -p .build
make
make install prefix=./.build

3. 执行完以上命令后在主目录的.build目录下的内容和执行生成的protoc结果如下:

GitHub:https://github.com/fengbingchun/OpenSSL_Test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Windows和Linux上编译gRPC源码操作步骤(C++) 的相关文章

  • 很好的 C 库集合? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个很好的 ANSI C 库集合 用于处理向量 哈希映射 二进制树 字符串处理等 Try g
  • 从不同目录导入proto文件

    我正在努力为 grpc 导入编写正确的配置 所以 net解决方案的结构是这样的 Protos Common common proto Protos Vehicle car proto 汽车微服务 在 car proto 里面我有 impor
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 如何正确调用 LsaLogonUser 进行交互式登录?

    我正在尝试使用 LsaLogonUser 创建交互式登录会话 但它总是返回STATUS INVALID INFO CLASS 0xc0000003 从网上查到的内存布局KERB INTERACTIVE LOGON结构很棘手 但我很确定我做得
  • 是否可以确定哪个键盘发送了按键?

    我有一个 Windows Media Center 遥控器 Windows 将其识别为键盘 当我使用 Windows Media Center 运行多显示器设置并在一个屏幕上播放视频时 遥控器的输入将与常规键盘一起定向到活动窗口 因此 当我
  • 获取所有 JVM 使用的所有 Java 类的列表?

    我想要一个在某个时刻在多个线程 JVM 中加载的所有类的列表 我知道当你运行java时 verbose参数 您可以将其写入文件 如下所示 java verbose class com package Foo gt classes used
  • 使用vim,如何快速刷新正在处理的网页?

    我已经使用 VIM 几个星期了 同时处理各种网络语言 我真的很喜欢它 我发现必须点击或单击浏览器并刷新页面才能看到代码更改的效果 这很麻烦 更烦人的是 因为我使用的是 Virtual Box 而且我倾向于在主机系统上处理 PDF 文件 因此
  • Powershell:别名和函数有什么区别?

    Im setting up my powershell profile to create aliases of commonly used commands On Microsoft s documentation https learn
  • 触摸屏模拟器:是否有任何 Windows 模拟器可以在触摸屏环境中测试应用程序

    我想在触摸屏环境中测试我的应用程序 我的应用程序是一个使用 asp net net Framework 3 5 和 flash 构建的网站 我想使用 Windows XP Vista 7 的模拟器来测试我的应用程序 请告诉我是否有 Micr
  • ulimit -r 返回不同的值

    我将以下两行添加到系统范围的 etc security limits conf 中 soft rtprio 55 hard rtprio 55 系统重新启动后 根据我在计算机上访问用户帐户的方式 我会得到两个不同的结果 user clien
  • 找出用户属于哪些组

    我有一个刚刚创建的 Windows 用户帐户 以 XYZ 为例 此 XYZ 属于我在计算机管理 gt 本地用户和组中创建的用户组和自定义组 因此 在属性中我看到该用户属于 2 个组 现在我想获取这些组并显示它们 有什么建议么 我已经这样做了
  • 无法声明接口:资源繁忙

    我正在使用 USB4Java 低级版本 并且基本上是根据这段代码工作的here http www mets blog com java usb communication usb4java 我在 Ubuntu 中工作 遇到了有关权限的问题
  • 如何在 Windows 上以编程方式将 SVG 转换为 PDF?

    我希望在服务器上以编程方式将 SVG 转换为 PDF 文档 在 Windows 上执行此操作有哪些选项 我看过链接Inkscape http www inkscape org Batik http xmlgraphics apache or
  • 如何检查窗口在用户屏幕上是否完全可见?

    有没有办法检查 WinForm 在屏幕上完全可见 例如是否超出屏幕范围 我已经尝试使用 SystemInformation VirtualScreen 来实现此目的 只要虚拟屏幕是一个矩形 它就可以很好地工作 但是一旦它不是 例如 L 形的
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • 为什么 0.0.0.0 可以工作而 localhost 或 127.0.01 却不能

    我有一个 grpc go 服务器在 docker 容器中运行 监听0 0 0 0 8080 我发现这在聆听失败后有效localhost or 127 0 0 1在 docker 容器中 它仅在 docker 容器中运行失败 如果我在同一台机
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 使用 ALB 在 AWS 上部署 gRPC 支持应用程序

    我有两个使用 gRPC 进行通信的微服务 两者都是部署在 ECS 上的 docker 应用程序 如何配置它们以使用 AWS ALB 文档中说 ALB 支持 HTTP 2 但我只能看到 HTTP1 设置 我的应用程序有 1 个 gRPC 端口
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也

随机推荐

  • 第28章 LTDC—液晶显示中英文

    本章参考资料 xff1a STM32F76xxx参考手册 STM32F7xx 规格书 库帮助文档 STM32F779xx User Manual chm 关于开发板配套的液晶屏参数可查阅 5 0寸液晶屏数据手册 xff08 或 7 0 寸数
  • SFTP get数据提示错误:cannot download non-regular file

    原因 xff1a 这是由于sftp基本客户端不允许进行递归下载 xff0c 或者是对一个文件夹下载 解决方案 xff1a 需要进去目录下载一个具体的文件 可以看看这个报错是否由于自己讲一个文件夹当成了自己需要下载的文件进行了下载
  • 使用wireshark过滤/查找协议里面的特定内容

    一 使用wireshark命令过滤 xff1a 1 tcp的载荷 xff1a tcp contains 34 api 34 说明 xff1a 在tcp报文中过滤出含有 api 内容的报文 xff1b 如下图 xff1a 2 其它类型协议同理
  • 两步解决科来数据包生成器找不到网卡的问题

    1 下载科来数据包生成器 xff0c 按照默认配置安装即可 xff1a http www colasoft com cn download packet builder php 2 部分同学安装完成后 xff0c 在准备发包时会发现 xff
  • 离线安装selenium

    1 在线情况下最简单直接cmd xff1a cmd环境下 xff0c 用pip install selenium命令安装即可 2 离线安装 xff1a xff08 1 xff09 https pypi org project seleniu
  • vim命令进阶

    显示当前位置行数 nu 显示所有行数 set nu 删除n m行 n m d 删除n 结尾行 n d
  • Centos2步配置本地yum源

    1 进入目录 xff0c 将其中的原有yum源配置转到备份目录当中 cd etc yum repos d mkdir backup mv repo backup 2 新建本地的yum源配置文件 vim local repo 输入一下内容 j
  • Linux4步快速搭建DNS服务器

    1 下载DNS服务器软件 xff1a yum install y bind 2 配置基本配置文件 xff1a vim etc named conf 3 配置域名文件 xff1a vim var named db cn zone 4 重启服务
  • 海康OSD水印

    设置 OSD 字符叠加参数 64 param iUserID loginId 64 param iChan 通道号 64 param contents 内容 public static void SetOSDString int iUser
  • STM32芯片配置错误SWD功能被占用时的下载方法.

    最近在用STM32CubeMX配置STM32芯片 可以配置时钟 管脚 SPI串口等 免去了复杂的计算过程 不用记各种功能寄存器 相当的方便 用过的都说好 强烈推荐大家一试 但刀太锋利了用不熟练也容易误伤 在分配IO口功能的过程中 忘记了SW
  • STM32核心的电源管理器程序卡死现象的分析与解决

    某个项目中的电源管理器在外场频繁出现通讯中卡死现象 该电源管理器内部有多路DC DC主要起电源适配 电源管理及监控作用 控制核心为STM32F103RET7 主要任务为AD采集16路模拟电压 xff0c 控制4路电源通断 xff0c 2路串
  • 第29章 电容触摸屏—触摸画板

    本章参考资料 xff1a STM32F76xxx参考手册 STM32F7xx 规格书 库帮助文档 STM32F779xx User Manual chm 关于开发板配套的触摸屏参数可查阅 5 0寸触摸屏面板说明 xff0c 触摸面板配套的触
  • SBUS2 协议初探

    SBUS2和SBUS的区别 1 xff1a 总线类型不一样 sbus是单向传输 xff0c 只做控制使用 xff0c 不做输入 SBUS2是非标准的双向总线 xff0c 可以做控制输出 xff0c 也可以做信息输入 2 xff1a 结束符不
  • IAR 中如何调用EmEditor

    IAR 中如何调用EmEditor 文本编辑器我一直都用EmEditor Emeditor是一款很优秀的纯文本编辑器 xff0c 它对中日韩等亚洲字符集支持的很好 xff0c 不仅有语法高亮显示功能 xff0c 搜索替换功能也是近乎可爱的强
  • 花了一下午,弄明白四个名词 USCI,USI,LIN,IrDa

    最近在看MSP的程序 xff0c TI的官方例子程序 xff0c 有些名词看了却不知道什么意思 xff0c 本着穷根问底的态度 xff0c 上网搜索 xff0c 花了一下午 xff0c 弄明白四个名词 USCI xff0c USI xff0
  • Cadence 17.2学习笔记--显示元件丝印及元件标号的设置

    快捷键Ctrl 43 F5 调出Color Dialog 左侧菜单第三项Geometry选项 钩选图中Silkscreen Top或Silkscreen Bottom可打开或关闭元件外形丝印的显示 同样Color Dialog对话框 左侧菜
  • 【Android UI】色板

    Hex CodeColor FFFFFF FFFFCC FFFF99 FFFF66 FFFF33 FFFF00 FFCCFF FFCCCC FFCC99 FFCC66 FFCC33 FFCC00 FF99FF FF99CC FF9999 F
  • 对称加密算法AES简介及在OpenSSL中使用举例

    高级加密标准 AES Advanced Encryption Standard 由美国国家标准和技术协会 NIST 于2000年公布 xff0c 它是一种对称加密算法 xff0c 用来替代DES AES也称为Rijndael算法 xff0c
  • 基于Hash的消息认证码HMAC简介及在OpenSSL中使用举例

    HMAC Hash based Message Authentication Code xff1a 基于Hash的消息认证码 xff0c 是一种通过特别计算方式之后产生的消息认证码 MAC xff0c 使用密码散列函数 xff0c 同时结合
  • 在Windows和Linux上编译gRPC源码操作步骤(C++)

    gRPC最新发布版本为v1 23 0 xff0c 下面以此版本为例说明在Windows和Linux下编译过程 Windows7 10 vs2103编译gRPC源码操作步骤 xff1a 1 需要本机已安装Git CMake Perl Go y