热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Windows下google/protobufv3.9.1VS2017x86x64编译、使用

Windows下googleprotobufv3.9.1--VS2017x86x64编译、使用,Go语言社区,Golang程序员人脉社
一、编译

1、准备工作安装下列软件

VS2017

CMake:https://cmake.org/download/

2、下载protobuf的C++版本的源代码

https://github.com/google/protobuf/releases

 

3、解压源码到任意目录,最好不要带中文路径,然后使用CMake配置VS2017的工程。

4、点击第3点中Configure后会弹出如下配置选项,根据需要选择生成32位还是64位的VS2017工程。

5、点击Finish后进行参数配置。我配置生成为动态库工程下面的CMAKE_INSTALL_PREFIX路径为编译后库的安装路径。编译后对应的dll、lib、include文件都放在此目录下。可自行修改,我就不修改了。

6、最后点击图中的Generate按钮后生成VS2017对应工程,直接用VS2017打开后选择INSTALL工程完成编译生成,生成文件建下图。

二、使用

具体C++使用详见官方文档:https://developers.google.com/protocol-buffers/docs/cpptutorial

说下使用过程中的注意事项:

1)把.proto文件拷贝到protoc.exe目录下,使.proto文件生成.h .cpp文件的命令:

//$SRC_DIR .proto文件存放目录,一般.proto存放src源码目录 //$DST_DIR 输出.h .cpp目录,一般生成到源码目录 //最后面是.proto文件名称 protoc -I=$SRC_DIR --cpp_out=$DST_DIR addressbook.proto

 

//把.proto文件拷贝到protoc.exe目录,直接执行下面命令生成到当前目录 protoc.exe --cpp_out=./ addressbook.proto

//可以包含多个-I 路径,应为官方例子包含了import "google/protobuf/timestamp.proto";所以多包含一个路径才能正常生成.h .cpp protoc.exe -I=C:UsersHolyDesktopprotobufprotobufTestprotobufTest -I=C:UsersHolyDesktopprotobufprotobufprotobufx86Debuginclude --cpp_out=C:UsersHolyDesktopprotobufprotobufTestprotobufTest addressbook.proto

注意空格,上述参数-I为.proto文件存放目录,一般.proto文件放在src源码目录下(你的应用程序源代码位于哪里——如果你没有提供任何值,将使用当前目录)、目标目录(你想要生成的代码放在哪里;常与 $SRC_DIR 相同),以及你的 .proto 文件名

2)关闭VS2015的工程属性----C/C++----常规----SDL检查 为否

3)因为使用的使动态库所以在stdfx.h预编译头加入下面宏定义,否则编译报错。

#define PROTOBUF_USE_DLLS

VS2015下的测试工程以及编译好的protobuf库:

http://download.csdn.net/download/qing666888/10220793

 


推荐阅读
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • Windows 环境下安装 Git 并连接 GitHub 的详细步骤
    本文详细介绍了如何在 Windows 系统中安装 Git 工具,并通过配置 SSH 密钥实现与 GitHub 的安全连接。包括下载、安装、环境配置及验证连接等关键步骤。 ... [详细]
  • 本文介绍了在Android项目中实现时间轴效果的方法,通过自定义ListView的Item布局和适配器逻辑,实现了动态显示和隐藏时间标签的功能。文中详细描述了布局文件、适配器代码以及时间格式化工具类的具体实现。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • JavaScript:简洁与复杂之间的平衡
    本文探讨了在编写JavaScript教程时,如何在保持内容简洁的同时,确保初学者能够理解并应用实际开发中的复杂问题。文章通过具体示例分析了不同层次的JavaScript代码实现。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • 利用YAML配置Resilience4J的Circuit Breaker
    本文探讨了Resilience4j作为现代Java应用程序中不可或缺的容错工具,特别介绍了如何通过YAML文件配置Circuit Breaker以提高服务的弹性和稳定性。 ... [详细]
  • 深入解析SSL Strip攻击机制
    本文详细介绍了SSL Strip(一种网络攻击形式)的工作原理及其对网络安全的影响。通过分析SSL与HTTPS的基本概念,探讨了SSL Strip如何利用某些网站的安全配置不足,实现中间人攻击,以及如何防范此类攻击。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • 本文档提供了如何使用C#代码从客户订单中提取产品信息的方法,适用于需要处理和分析产品数据的应用场景。 ... [详细]
  • 本文介绍了一个项目中如何在Windows平台上实现多声道音频数据的采集,特别是针对DANTE音频接口的8路立体声音频通道。文章详细描述了使用Windows底层音频API进行音频采集的方法,并提供了一个具体的实现示例。 ... [详细]
author-avatar
你可知马羔_523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有