环境:

  win7_x64,VS2015

开始:

一、安装工具

  1. 安装cmake

  2. 安装ActivePerl

  3. 安装golang

  4. 安装nasm

  验证安装是否安装成功:

  cmake -version

  perl -version

  go version

  nasm -v

如果出现错误,请检查是否安装成功;若安装成功,则需要检查安装目录是否添加到环境变量path中。

二、下载源码

  1. grpc-1.3.1.tar.gz          解压到D:/grpc-1.3.1

  2. benchmark-1.1.0.tar.gz      解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/benchmark

  3. boringssl-master.zip         解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/boringssl

  4. c-ares-cares-1_12_0.tar.gz     解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/cares/cares

  5. gflags-2.2.0.tar.gz          解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/gflags

  6. protobuf-3.0.0.tar.gz        解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/protobuf

  6. zlib-1.2.11.tar.gz          解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/zlib

  除grpc外,其他的第三方库可以下载其他的版本,只要按照上面的路径解压到相应的目录即可。注意一定要将c-ares-cares-1_12_0.tar.gz解压到D:/grpc-1.3.1/grpc-1.3.1/third_party/cares/cares目录,否是编译会报错。

三、编译

  1. 编写脚本do_build.bat

@echo off
::Release,Debug,RelWithDebInfo
set CMAKE_BUILD_TYPE=%%
::x86,x64
set PLATFORM=%%
set OUTPUT_PATH=%%
set CMAKE_PATH=%% if not exist %PLATFORM% (
mkdir %PLATFORM%
)
cd %PLATFORM% if %PLATFORM% == x86 (
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" x86
)
if %PLATFORM% == x64 (
call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64
) echo cmake -G "NMake Makefiles" -D CMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% -D EXECUTABLE_OUTPUT_PATH=%OUTPUT_PATH% -D LIBRARY_OUTPUT_PATH=%OUTPUT_PATH% -D CMAKE_C_FLAGS_RELEASE="/MT /WX-" -D CMAKE_CXX_FLAGS_RELEASE="/MT /WX-" -D BUILD_SHARED_LIBS= %CMAKE_PATH%
::CMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE%    构建类型(Release,Debug,RelWithDebInfo)
::EXECUTABLE_OUTPUT_PATH=%OUTPUT_PATH%  可执行程序的路径
::LIBRARY_OUTPUT_PATH=%OUTPUT_PATH% 静态库的路径
::CMAKE_C_FLAGS_RELEASE="/MT /WX-"   使用静态运行时库,禁止将警告视为错误
::CMAKE_CXX_FLAGS_RELEASE="/MT /WX-"   使用静态运行时库,禁止将警告视为错误
::BUILD_SHARED_LIBS=   生成静态库
cmake -G "NMake Makefiles" -D CMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% -D EXECUTABLE_OUTPUT_PATH=%OUTPUT_PATH% -D LIBRARY_OUTPUT_PATH=%OUTPUT_PATH% -D CMAKE_C_FLAGS_RELEASE="/MT /WX-" -D CMAKE_CXX_FLAGS_RELEASE="/MT /WX-" -D BUILD_SHARED_LIBS= %CMAKE_PATH%
nmake grpc grpc++ grpc_cpp_plugin protoc

  主要作用是根据传入的参数生成nmake文件,其中"/MT /WX-"是传递给cl编译器的参数,分别为"使用静态运行时库"和"禁止将警告视为错误"。这个有个技巧如果想要将其他的参数传递给编译器,只需要在后面添加即可。

  2. 编写脚本build_x64.bat

@echo off

set CURRENT_DIR=%~dp0
set CMAKE_BUILD_TYPE=Release
set PLATFORM=x64
set OUTPUT_PATH=%CURRENT_DIR%/x64/bin
set CMAKE_PATH=%CURRENT_DIR%/../../ call do_build.bat %CMAKE_BUILD_TYPE% %PLATFORM% %OUTPUT_PATH% %CMAKE_PATH% @pause

  生成Release x64平台库文件

  3. 编写脚本build_x86.bat

@echo off

set CURRENT_DIR=%~dp0
set CMAKE_BUILD_TYPE=RelWithDebInfo
set PLATFORM=x86
set OUTPUT_PATH=%CURRENT_DIR%/x86/bin
set CMAKE_PATH=%CURRENT_DIR%/../../ call do_build.bat %CMAKE_BUILD_TYPE% %PLATFORM% %OUTPUT_PATH% %CMAKE_PATH% @pause

  生成Release x86平台库文件

  4. 开始编译

  将build_x64.bat、build_x86.bat和do_build.bat脚本,拷贝到D:/grpc-1.3.1/grpc-1.3.1/cmake目录下

  运行build_x64.bat和build_x86.bat进行编译

所有资源下载链接:http://pan.baidu.com/s/1pL8sOcz 提取密码vm8v

使用VS2015编译grpc_1.3.1的更多相关文章

  1. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  2. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  3. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  4. 用VS2015编译sqlcipher

    简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...

  5. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  6. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  7. vs2015编译caffe

    有些时候,需要在python3的环境下import caffe,需要用vs2015在python3的环境下,编译pycaffe. microsoft的windows版本的caffe,依赖的库Nuget ...

  8. 使用VS2015编译xlslib库

    环境: win7_x64,VS2015 开始: 一.下载xlslib库 xlslib-package-2.5.0.zip 解压到一个指定目录,如E:\library\xlslib-package-2. ...

  9. [转][JSBSim]使用VS2015编译JSBSim

    转自csdn原文:https://blog.csdn.net/yu_lei_/article/details/81463187 请大家去看原文,原文有图片和资源,本文仅供本人参考 权威参考:http: ...

随机推荐

  1. Hibernate的cascade属性 特别是 cascadeType.all的 作用

    1.JPA中的CascadeType.ALL并不等于{CascadeType.PESIST,CascadeType.REMOVE,CascadeType.MERGE,CascadeType.REFRE ...

  2. 性能测试的过程(jmeter)

    一.web性能测试的准备工作 1.项目背景 访问地址 访问环境:windows 2.需求 并发登陆的性能(要求多少个用户登录) 3.场景 60秒内运行100个线程 线程在20.50.100并发下的表现 ...

  3. LeetCode--021--合并两个有序链表(java)

    将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...

  4. Practical Node.js (2018版) 第9章: 使用WebSocket建立实时程序,原生的WebSocket使用介绍,Socket.IO的基本使用介绍。

    Real-Time Apps with WebSocket, Socket.IO, and DerbyJS 实时程序的使用变得越来越广泛,如传统的交易,游戏,社交,开发工具DevOps tools, ...

  5. php-parser在Aop编程中的使用

    在laravel下使用php-parser实现aop composer require nikic/php-parser Test.php <?php /** * Created by PhpS ...

  6. tensorflow和keras混用

    在tensorflow中可以调用keras,有时候让模型的建立更加简单.如下这种是官方写法: import tensorflow as tf from keras import backend as ...

  7. jQuery 省份选择

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. CloudStack学习-1

    环境准备 实验使用的虚拟机配置 Vmware Workstation 虚拟机系统2个 系统版本:centos6.6 x86_64 内存:4GB 网络:两台机器都是nat 磁盘:装完系统后额外添加个50 ...

  9. Python Flask框架

    Python有很多Web框架,可谓是百家争鸣,我这里列出几个比较叼的几个框架 Django      市场占有率最高,官方文档几近完美,但是适合比较大的项目,小项目会显得累赘. Tornado    ...

  10. win10 ssd 卡顿

    http://www.pconline.com.cn/win10/739/7395324.html