win7_x64,VS2015
1. 安裝cmake
2. 安裝ActivePerl
3. 安裝golang
4. 安裝nasm
驗證安裝是否安裝成功:
cmake -version
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcucjN3gzYwQmNmJWNxIzMxMWYzMjY4EjZxQGOwcjYxMWZfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
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
主要作用是根據傳入的參數生成nmake檔案,其中"/MT /WX-"是傳遞給cl編譯器的參數,分别為"使用靜态運作時庫"和"禁止将警告視為錯誤"。這個有個技巧如果想要将其他的參數傳遞給編譯器,隻需要在後面添加即可。
2. 編寫腳本build_x64.bat
生成Release x64平台庫檔案
3. 編寫腳本build_x86.bat
生成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進行編譯
也可直接用下面一個腳本
@echo off
::Release,Debug,RelWithDebInfo
set CMAKE_BUILD_TYPE=Release
::x86,x64
set PLATFORM=x86
set 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