本文共 4222 字,大约阅读时间需要 14 分钟。
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,RelWithDebInfoset CMAKE_BUILD_TYPE=%1%::x86,x64set PLATFORM=%2%set OUTPUT_PATH=%3%set CMAKE_PATH=%4%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=0 %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=0 生成静态库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=0 %CMAKE_PATH%nmake grpc grpc++ grpc_cpp_plugin protoc
主要作用是根据传入的参数生成nmake文件,其中"/MT /WX-"是传递给cl编译器的参数,分别为"使用静态运行时库"和"禁止将警告视为错误"。这个有个技巧如果想要将其他的参数传递给编译器,只需要在后面添加即可。
2. 编写脚本build_x64.bat
@echo offset CURRENT_DIR=%~dp0set CMAKE_BUILD_TYPE=Releaseset PLATFORM=x64set OUTPUT_PATH=%CURRENT_DIR%/x64/binset CMAKE_PATH=%CURRENT_DIR%/../../call do_build.bat %CMAKE_BUILD_TYPE% %PLATFORM% %OUTPUT_PATH% %CMAKE_PATH%@pause
生成Release x64平台库文件
3. 编写脚本build_x86.bat
@echo offset CURRENT_DIR=%~dp0set CMAKE_BUILD_TYPE=RelWithDebInfoset PLATFORM=x86set OUTPUT_PATH=%CURRENT_DIR%/x86/binset 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进行编译
所有资源下载链接: 提取密码vm8v
也可直接用下面一个脚本
@echo off
::Release,Debug,RelWithDebInfoset CMAKE_BUILD_TYPE=Release::x86,x64set PLATFORM=x86set OUTPUT_PATH=%CURRENT_DIR%\x86\bin\set CMAKE_PATH=%CURRENT_DIR%\..\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=0 %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=0 生成静态库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=0 %CMAKE_PATH%nmake grpc grpc++ grpc_cpp_plugin protoc转载地址:http://rjcul.baihongyu.com/