使用VS2015編譯grpc_1.3.1

環境:

  win7_x64,VS2015c++

開始:

1、安裝工具

  1. 安裝cmakegolang

  2. 安裝ActivePerl工具

  3. 安裝golangui

  4. 安裝nasmspa

  驗證安裝是否安裝成功:code

  cmake -versionblog

  perl -versionip

  go versionssl

  nasm -v資源

若是出現錯誤,請檢查是否安裝成功;若安裝成功,則須要檢查安裝目錄是否添加到環境變量path中。

2、下載源碼

  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目錄,否是編譯會報錯。

3、編譯

  1. 編寫腳本do_build.bat

複製代碼
@echo off
::Release,Debug,RelWithDebInfo
set CMAKE_BUILD_TYPE=%1%
::x86,x64
set 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 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

 

 

也可直接用下面一個腳本

@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

相關文章
相關標籤/搜索