一:概述

关于 protobuf 在此不再多说,此处记录下成功编译步骤以备日后查阅。
注意:本文并不是使用cmake gui进行编译的,如果熟悉cmake gui的话,也可以使用gui进行生成编译。

二:准备资源及工具

  1. VS2013或以上版本,安装好
  2. protobuf 源码,下载地址:
    官网:http://code.google.com/p/protobuf/
    git网:https://github.com/google/protobuf或git:https://github.com/google/protobuf/releases
    个人是最后一个地址下载的,下载包为末尾的:Source code (zip) 完整包
  3. cmake,下载并安装好
  4. 注意:如果有需要编译gtest的,还需要上官网或git下载gmock与gtest相关资源包。(早上这两个包好像是分开的,现在新版本,看readme中描述,gmock像是已被整合到gtest中了)。本人不需要gtest,故不下载。

三:环境配置

  1. 安装好cmake后,打开cmd窗口输入 cmake --version 检查cmake是否安装正确。如果提示错误,则需要手动配置cmake到系统环境变量中
  2. 解压下载好的 protobuf 源码完整包。(如解压到此处:I:\Dev\C++\ ,因此,本人的 protobf 资源所在位置为:I:\Dev\C++\protobuf-3.3.0)

四:编译 protobuf

  1. 打开VS2013 x86 本地工具命令提示(因为个人编译的是x32版本)
  2. cd I:\Dev\C++\protobuf-3.3.0\cmake
  3. mkdir build & cd build
  4. mkdir x86 & cd x86
  5. mkdir debug & cd debug
    提示:要编译release版本时,就 mkdir release & cd release 即可。此步骤只是创建一个debug(或release)目录,用于存放生成debug(或release)相关的cmake file配置信息。执行完步骤3、4后,当前所在路径为:I:\Dev\C++\protobuf-3.3.0\cmake\build\x86\debug
  6. cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../../install/x86/debug ../../..
    此时稍等片刻等待makefile相关的配置文本生成完成。如果没有提示错误,则继续后续步骤
  7. nmake
    此时再次稍等片刻等待protobuf(相应的debug或release版本)编译完成。如果没有提示错误,则继续后续步骤
  8. nmake install
    此时再次稍等片刻等待安装完成。如果没有提示错误,则会在I:\Dev\C++\protobuf-3.3.0目录下生成一个 install目录,里面会有 bin 目录、lib 目录、include 目录 以及一个 cmake 目录。对于开发有用的主要是前三个目录。

Windows下编译protobuf v3.3.0的更多相关文章

  1. 继《在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib》修订

    在之前的<在Windows下编译扩展OpenCV 3.1.0 + opencv_contrib>中有些问题,后来由于时间不是很充足,故现在对其中的问题进行完善,如下所示对红色框框中的相应的 ...

  2. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  3. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  4. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  5. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  6. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  7. windows下编译java源文件的编码错误

    import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

  8. Windows下编译SDL

    Windows下编译SDL的理由我就不多说了,无论用VS来编译或调试SDL库都是很方便的.而且SDL源代码中也包含了VC工程,你所要做的只是解压VC工程,进行适当的配置,然后编译.调试. 编译SDL大 ...

  9. Windows下编译安装 FFmpeg

    在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

随机推荐

  1. perl HTML::LinkExtor模块(1)

    use LWP::Simple; use HTML::LinkExtor; $html = get("http://www.baidu.com"); $link = HTML::L ...

  2. A Tutorial on Network Embeddings

    A Tutorial on Network Embeddings paper:https://arxiv.org/abs/1808.02590   NE 的中心思想就是找到一种映射函数,该函数将网络中 ...

  3. .NET Core、.NET Standard、Xamarin和.NET Framework对比

    近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core..NET Standard.Xamarin和.NET Framework有什么不同. .NET F ...

  4. 算法入门系列1:k-means

    k-means是一种无监督学习算法,用于聚类. 下图(来自http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html)展示了k-m ...

  5. EL表达式使用时出现NumberFormatException异常

    从后端数据库取出书本集合,然后循环输出到前端表格: <c:forEach items="${bookManagedBean.bookList}" var="book ...

  6. AC日记——NOI2016区间 bzoj 4653

    4653 思路: 线段树,指针滑动: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1000005 #def ...

  7. npm更新包

    方法一手动跟新: 手动修改package.json中依赖包版本,执行npm install --force,强制从远程下载所有包更新本地包 方法二使用第三方插件: npm install -g npm ...

  8. centos7 samba安装

    http://www.cnblogs.com/muscleape/p/6385583.html 1 安装yum install samba 2 添加用户xxx smbpasswd -a xxx 3 s ...

  9. 使用for循环打印9×9乘法表

    请使用for循环,倒序打印9×9乘法表. 打印结果如下图所示: 使用for循环打印9×9乘法表 #include <stdio.h> int main() { int i, j, resu ...

  10. linux c 学习笔记

    gcc是linux c编译器 gcc -o o指定文件名或者会生成a.out文件 comment 注释 generate(生成) some simple ouput 使用标准 为C89