Windows下Protobuf的静态库编译和使用说明(验证成功) - Go语言中文社区

Windows下Protobuf的静态库编译和使用说明(验证成功)


下载 protobuf 、cmake 
https://github.com/google/protobuf/releases 
https://cmake.org/download/

这里写图片描述

这里写图片描述

打开cmake

这里写图片描述

1.你下载的protubuf目录中的cmake目录 
2.protubuf编译后的目录 
然后点configure

这里写图片描述

会自动检测出你的vs,一切默认就好,然后点 finish

这里写图片描述

然后点击Generate,如果成功,进入编译好的目录

这里写图片描述

用vs打开这个项目

这里写图片描述

我只用到了libprotobuf和protoc,如果到时候缺少库,再编译一下libprotoc吧(网上很多人用了) 
然后编译这两个文件夹

这里写图片描述

编译到目前为止就结束了,现在来说怎么使用 
首先建立一个vs工程,把上面的libprotobufd.lib和proto.exe拷贝到vs工程中 
自己再写一个简单的protobuf文件

这里写图片描述

这里写图片描述


把生成的.h和.cc文件copy到源文件目录,再手动添加到项目中

这里写图片描述

最重要的来了,自己被整到死的几个关键步骤

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

如果有多个.lib用 ; 隔开 
还需要把protobuf/src/google拷贝过来

这里写图片描述

这里写图片描述

终于可以运行了,满满的泪,你们肯定不知道为此我花了多久时间,心酸历

这里写图片描述

1、下载protobuf

下载地址:https://github.com/google/protobuf/releases

选择protoc-xxx-win32.zip下载

2、配置环境变量

将解压出来的protoc.exe放在一全英文路径下,并把其路径名放在windows环境变量下的path下。

这里写图片描述

放在系统环境变量下和用户环境变量下都是可以的,这里放在了用户环境变量下。

这里写图片描述

注:简单粗爆的放在C:WindowsSystem32下面也是可以运行的。

3、生成代码

在所使用的proto文件路径下打开cmd窗口执行以下命令:

protoc -I=源地址 --java_out=目标地址  源地址/xxx.proto
  • 1

此处生成时会以 proto 里面注明的java_package为路径完整生成,所以目标地址不必包含java_package及之后的路径,比如:option java_package = "com.test.protocol";,那么就会生成com/test/protocol/XXX.java

参数解释:

-I:主要用于指定待编译的 .proto 消息定义文件所在的目录,即可能出现的包含文件的路径,该选项可以被同时指定多个。此处指定的路径不能为空,如果是当前目录,直接使用.,如果是子目录,直接使用子目录相对径,如:foo/bar/baz,如果要编译的文件指定的文件路径为baz/test.proto,那么应这么写-I=foo/bar,而不要一直写到baz。

4、示例

使用的文件:

SubscribeReq.proto(在 D:test_protoc 下)

syntax = "proto2";
option java_package="com.nio.serlizable";
option java_outer_classname="SubscribeReqProto";

message SubscribeReq{
        required int32 subReqId = 1;
        required string userName = 2;
        required string productName = 3;
        repeated string address = 4;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

生成:

D:>protoc -I=D:test_protoc --java_out=D:test_protoc SubscribeReq.proto
  • 1

生成后:

这里写图片描述


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/maweifei/article/details/80942197
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 23:26:05
  • 阅读 ( 1692 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢