1、获取grpc源码
> git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
> cd grpc
> git submodule update --init
2、生成visual studio工程文件
- 生成visual studio 2015工程文件
cmake .. -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Release
指定生成win64工程文件
"Visual Studio 14 2015 Win64"
, 不指定Win64
默认生成Win32
工程cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release
指定运行时库模式(
MT/MTD/MD/MDD
)- 新建脚本文件 compiler_flags_overrides.cmake
编辑脚本,内容如下
if(MSVC) # Use the static C library for all build types MESSAGE(STATUS "link to static C and C++ runtime lirbary(/MT /MTd)") foreach(var CMAKE_C_FLAGS_DEBUG_INIT CMAKE_C_FLAGS_RELEASE_INIT CMAKE_C_FLAGS_MINSIZEREL_INIT CMAKE_C_FLAGS_RELWITHDEBINFO_INIT CMAKE_CXX_FLAGS_DEBUG_INIT CMAKE_CXX_FLAGS_RELEASE_INIT CMAKE_CXX_FLAGS_MINSIZEREL_INIT CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT ) if(${var} MATCHES "/MD") string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}") MESSAGE(STATUS "${var}:${${var}}") endif() endforeach() endif(MSVC)
指定脚本
-DCMAKE_USER_MAKE_RULES_OVERRIDE=compiler_flags_overrides.cmake
cmake .. -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Release -DCMAKE_USER_MAKE_RULES_OVERRIDE=compiler_flags_overrides.cmake
3、编译grpc
- 使用
visual studio 2015
打开grpc.sln
- 生成
grpc
- ok