Windows下编译

官方文档
第三方文档

准备工具

需要注意

推荐按照第三方的文档上的安装就可以了,但是中间会有许多坑。
比如:若是下载proto3的最新版,就会编译错误,我这里也没找到为嘛错误,所以就按照第三方文档上面的git 3.0版本的源代码。

按照各自的需求修改源代码后,直接进行编译和检查就行了。

主要步骤

1、 通过你的开始菜单,打开Visual Studio 2013的开发人员命令提示工具:

2、然后cd到D盘,自己创建以下目录

  1. D:\Path\to

3、git源代码(3.0版本)

  1. D:\Path\to>git clone -b v3.0.0 https://github.com/google/protobuf.git
  2. D:\Path\to>cd protobuf
  3. D:\Path\to\protobuf>
  4. D:\Path\to\protobuf>git clone -b release-1.7.0 https://github.com/google/googlemock.git gmock
  5. D:\Path\to\protobuf>cd gmock
  6. D:\Path\to\protobuf\gmock>git clone -b release-1.7.0 https://github.com/google/googletest.git gtest

4、cmake的配置

  1. D:\Path\to\protobuf\gmock>cd ..\cmake
  2. D:\Path\to\protobuf\cmake>

5、创建build临时编译目录

  1. D:\Path\to\protobuf\cmake>mkdir build & cd build
  2. D:\Path\to\protobuf\cmake\build>

6、Release 配置

  1. D:\Path\to\protobuf\cmake\build>mkdir release & cd release
  2. D:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles"-DCMAKE_BUILD_TYPE=Release-DCMAKE_INSTALL_PREFIX=../../../../install ../..

7、开始编译发布

  1. D:\Path\to\protobuf\cmake\build\release>nmake

接下来等待一段时间:

8、获取编译后的可执行文件
在当前文件夹下,就可以看到编译好的文件:protoc.exe

手动编译protobuf3的C++源码的更多相关文章

  1. CentOS7.3编译hadoop2.7.3源码

    在使用hive或者是kylin时,可以选择文件的压缩格式,但是这个需要有hadoop native库的支持,默认情况下,hadoop官方发布的二进制包中是不包含native库的,所以无法使用一些压缩相 ...

  2. Spring源码学习01:IntelliJ IDEA2019.3编译Spring5.3.x源码

    目录 Spring源码学习01:IntelliJ IDEA2019.3编译Spring5.3.x源码 前言 工欲善其事必先利其器.学习和深读Spring源码一个重要的前提:编译源码到我们的本地环境.这 ...

  3. Spring源码解析 | 第一篇 :IntelliJ IDEA2019.3编译Spring5.3.x源码

    前言 工欲善其事必先利其器.学习和深读Spring源码一个重要的前提:编译源码到我们的本地环境.这样方便我们在本地环境添加注释.断点追踪.查看类或接口的继承关系等等,更加高效的学习Spring源码.个 ...

  4. 编译hadoop2.2.0源码时报错

    编译hadoop2.2.0源码时, mvn install -DskipTests 报错: [ERROR] COMPILATION ERROR : [INFO] ------------------- ...

  5. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  6. vs2008编译FileZilla服务端源码

    vs2008编译FileZilla服务端源码 FileZilla服务端下载地址:https://download.filezilla-project.org/server/.FileZilla服务端源 ...

  7. WebRtc编译好的vs2015源码

    一直想看webrtc的源码,苦于FQ能力有限且整个编译过程耗时巨大,故求助于互联网.在互联网寻找许久编译好的Webrtc源码,好多版本下载下来总是报各种错误,很是失落. 皇天不负有心人,终于寻得一版可 ...

  8. Win10 VS2015 静态编译Qt5.6.2源码

    由于VS2015需要CRT等拓展组件,因此把内部编写的工具软件以静态发布,固需要编译Qt源码.Qt5.6.2版本,VS2015,Win10 1.安装python,perl,下载jom 2.改文件com ...

  9. 获取并编译最新的Notepad++源码

    获取并编译最新的Notepad++源码 http://blog.csdn.net/u012814856/article/details/68947310 Notepad++源码编译及其分析 http: ...

随机推荐

  1. 异常处理-try catch

    一:try catch是什么 try catch是java程序设计中处理异常的重要组成部分 异常是程序中的一些错误,有些异常需要做处理,有些则不需要捕获处理,异常是针对方法来说的,抛出.声明抛出.捕获 ...

  2. gitup问题的处理

    在使用本地建立git仓库后,准备使用 因为之前已经登录了,所以没有给登录的命令行 1.git init         命令初始化仓库 2.git add .     命令将所有的文件传输到git仓库 ...

  3. Linux服务器制定mysql数据库备份的计划任务

    首先,创建一个shell脚本: Shell #!/bin/bash mysql_pwd="1234567890" mysql_dump="/usr/local/mysql ...

  4. Angular之指令Directive系列

    项目筹备近期开启Angular学习,指令比较难理解所以记录备案,推荐Angualr实战学习视频大漠穷秋 Angular实战 一.指令directive概述 指令可以对元素绑定事件监听或者改变DOM结构 ...

  5. memcached subList序列化问题

    某个业务场景需要将list超过10个元素时截取前10个然后再丢memcached缓存,因此写了这么一行代码 if(list.size()>10){ list=list.subList(0, 10 ...

  6. JavaSE----基础语法(方法)

    1.8 方法 1.8.1方法的的定义 定义:完毕特定功能的代码块.在非常多语言里面有函数的定义,而在Java中函数被称为方法. 格式: 修饰符 返回值类型 方法名(參数类型 參数名1,參数类型 參数名 ...

  7. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总

    大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...

  8. [Android] AutoCompleteTextView:自己主动完毕输入内容的控件(自己主动补全)

    AutoCompleteTextView是EditText的直接子类,与普通EditText的最大不同就是.在用户输入的过程中,能够列出可供选择的输入项.方便使用者. AutoCompleteText ...

  9. Spring基础知识之基于注解的AOP

    背景概念: 1)横切关注点:散布在应用中多处的功能称为横切关注点 2)通知(Advice):切面完成的工作.通知定了了切面是什么及何时调用. 5中可以应用的通知: 前置通知(Before):在目标方法 ...

  10. 在PowerShell脚本中集成Microsoft Graph

    作者:陈希章 发表于2017年4月23日 我旗帜鲜明地表态,我很喜欢PowerShell,相比较于此前的Cmd Shell,它有一些重大的创新,例如基于.NET的类型系统,以及管道.模块的概念等等.那 ...