作者:你可知马羔_523 | 来源:互联网 | 2023-09-11 19:22
一、编译
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