Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用

一、编译

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

VS2017

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

Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用_第1张图片

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

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

Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用_第2张图片

 

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

Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用_第3张图片

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

Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用_第4张图片

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

Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用_第5张图片

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

Windows下google/protobuf v3.9.1--VS2017 x86 x64编译、使用_第6张图片

二、使用

具体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:\Users\Holy\Desktop\protobuf\protobufTest\protobufTest -I=C:\Users\Holy\Desktop\protobuf\protobuf\protobufx86Debug\include\ --cpp_out=C:\Users\Holy\Desktop\protobuf\protobufTest\protobufTest 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

 

你可能感兴趣的:(C/C++)