protobuf 系列 ---------下载、编译与使用

时间:2021-06-04 00:30:07

protobuf是谷歌开发并开源的二进制序列化工具,比常用的xml,json体积更小,解析速度更快。

目前,手头上的项目有涉及到这个工具,打算仔细研究一番,顺带记录遇到的问题,解决方法,时间足够的话,深入探究下源码。

今天主要记录下怎么下载源码,怎么成功编译。本人的平台是windows,编译器用的是vs2010。

源码下载:https://github.com/google/protobuf.git

本人下载到本地目录为:E:\code\protobufstudy\github

protobuf 系列 ---------下载、编译与使用

下载完成后的目录结构如上。

怎么编译的话里面有份文档解释的非常清楚

protobuf 系列 ---------下载、编译与使用

考虑到有些人不喜欢看英文,我再把我的编译过程展示下。

一:前期准备:CMake工具,可以去官网下载二进制版本的。https://cmake.org/download/

protobuf 系列 ---------下载、编译与使用

安装到本地后,如 C:\Program Files\CMake\bin ,然后打开命令行设置下环境变量E:\code\protobufstudy\github>set PATH=%PATH%;C:\Program Files (x86)\CMake\bin

(ps:命令行最好切换到下载的源码目录下,这样与本人讲述的一致)

这时就能使用cmake命令了,否则会说cmake不是内部命令什么的。

然后进入源码目录,E:\code\protobufstudy\github>cd trunk
                                   E:\code\protobufstudy\github\trunk>

进入源码下面的cmake目录,E:\code\protobufstudy\github\trunk>cd cmake

E:\code\protobufstudy\github\trunk\cmake>

创建build目录,E:\code\protobufstudy\github\trunk\cmake>mkdir build & cd build

E:\code\protobufstudy\github\trunk\cmake\build>

创建solution目录, E:\code\protobufstudy\github\trunk\cmake\build>mkdir solution & cd solution

E:\code\protobufstudy\github\trunk\cmake\build\solution>

执行cmake指令,cmake -G "Visual Studio 10 2010 Win64" ^

-DCMAKE_INSTALL_PREFIX=../../../../install ^
                                            ../..                 (暂且叫cmake指令1)

如果会报错误,找不到cl.exe,请设置下cl.exe的环境变量

E:\code\protobufstudy\github\trunk\cmake\build\solution>set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin  (这个是你本地的cl.exe所在目录)

再次执行cmake指令1,如果还报错误,找不到mspdb100.dll,请设置下mspdb100.dll的环境变量

E:\code\protobufstudy\github\trunk\cmake\build\solution>set PATH=%PATH%;D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE  (这个是你本地的mspdb100.dll所在目录)

再次执行cmake指令1,如果还报错误,没有找到gmock目录,要么下载下gmock,https://github.com/google/googlemock.git 目录为E:\code\protobufstudy\github\trunk\gmock,

本人懒,没有下载,那么久更改下cmake执行。

执行cmake指令,cmake -G "Visual Studio 10 2010 Win64" ^

                                            -Dprotobuf_BUILD_TESTS=OFF ^

                                           -DCMAKE_INSTALL_PREFIX=../../../../install ^
                                            ../..                 (暂且叫cmake指令2)      

这时在solution目录下就会有相应的.sln了。

protobuf 系列 ---------下载、编译与使用

打开编译即可,本人编译的release,编译的成果

                        protobuf 系列 ---------下载、编译与使用