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

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

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

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

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

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

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

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

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

安装到本地后,如 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了。

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

                        

protobuf 系列 ---------下载、编译与使用的更多相关文章

  1. protobuf的下载、编译和使用

    一 背景 工作中临时需要使用 protobuf v3.0.2 做消息格式转换,折腾了很久才搞定,这里特意做一个记录. 二 准备工作 全程使用的电脑为公司的win7 64位旗舰版,已经预先安装VS201 ...

  2. 系列篇|编译可在Android上运行的依赖库(一):glib库

    前言 这是系列文章,它们由<编译可在Android上运行的glib库>及其他4篇文章组成,这4篇文章在“编译依赖库”一节中列出.由于glib库依赖于其他第三方库,所以需要先将依赖的第三方库 ...

  3. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  4. (1)redis下载编译

    一.redis下载编译 这里没什么好说的 用的版本是redis-2.8.17 1)redis-server是可执行程序 2)mian函数在redis.c里面 3)如果要修改调试 这届在src目录下   ...

  5. 下载编译Chrome详细步骤

    文章来源:http://blog.csdn.net/allendale/article/details/9262833 参考:http://dev.chromium.org/developers/ho ...

  6. Vxworks 6.6系列下载地址

    Vxworks 6.6系列下载地址: ---------------------------------- ftp://ftp.windriver.speedera.net/ftp.windriver ...

  7. IBM ServerGuide引导盘全系列下载网址

    IBM ServerGuide引导盘全系列下载网址 官网链接 https://www.ibm.com/support/home/docdisplay?lndocid=SERV-GUIDE v9.30 ...

  8. 更新vs2017 15.9.2后,在指定-T v141_xp情况下载编译会报下面warning MSB8051

    更新vs2017 15.9.2后,在指定-T v141_xp情况下载编译会报下面warning: C:\Program Files (x86)\Microsoft Visual Studio\2017 ...

  9. Spring源码研究--下载-编译-导入eclipse-验证

    一,环境配置 操作系统:Unbutu14.04LTS JDK: 1.8.0_40 git: 1.9.1 gradle: 2.2.1 二,源码下载-编译-导入eclipse-验证 1,下载 使用git直 ...

随机推荐

  1. Grafana中多租户设置

    Grafana中通过设置不同的组织,以及将用户分配到不同组织,来做到多租户,类似门户的概念. Grafana默认是不允许非管理员用户创建新的组织的,这个可以通过修改配置文件以允许非管理员用户创建组织: ...

  2. Myeclipse快捷键以及使用技巧大全-来自网络

    1. 打开MyEclipse 6.0.1,然后"window"→"Preferences" 2. 选择"java",展开,"Edi ...

  3. [转]centos7环境安装rabbitMQ

    使用专业的消息队列产品rabbitmq之centos7环境安装 http://www.cnblogs.com/huangxincheng/p/6006569.html CentOS7上安装Rabbit ...

  4. 跟着刚哥梳理java知识点——HelloWorld和常见问题(一)

    1.按照国际惯例,写一段输出HelloWorld的java语句: public class HelloWorld { //这是main方法,程序的主入口 public static void main ...

  5. 易汇金在线支付接口实例。ecshop和shopex,shopnc,iwebshop下完美无错(最新)

    最近为客户的一个在线商城做了一个易汇金在线支付的接口.跟大家分享一下. 1 首先可以模仿其他的接口,比如支付宝,财付通等的接口,构建模块功能文件和语言文件. 功能模块构建: /includes/mod ...

  6. PHP弱类型语法的实现

    PHP弱类型语法的实现 前言 借鉴了 TIPI, 对 php 源码进行学习 欢迎大家给予意见, 互相沟通学习 弱类型语法实现方式 (弱变量容器 zval) 所有变量用同一结构表示, 既表示变量值, 也 ...

  7. inform表单验证,正则表达式,用户名,身份证,密码,验证码

    最近利用空闲时间写了部分表单验证,包括用户名,身份证,密码,验证码,仅为自己巩固最近所学的知识 表单的样式使用的是table布局,因为觉得DIV布局定位比较麻烦,table有三列,分别为基本信息,输入 ...

  8. "fatal: protocol error: bad line length character: No This"

    git clone 远程地址时候出现 "fatal: protocol error: bad line length character: No This" 错误 在stackov ...

  9. bootstrap快速入门笔记(八)-按钮,响应式图片

    一,默认样式:.btn-default , .btn-primary , .btn-success  ,.btn-info, btn-warning ,btn-link 二,尺寸:.btn-lg, . ...

  10. 【代码学习】PHP文件的上传和下载

    ===================== 文件上传和下载 ===================== 一.php.ini的配置信息 file_uploads = On /Off    是否允许文件上 ...