windows下使用cmake编译grpc

本文介绍如何从源码编译gRPC项目,并生成Visual Studio工程文件。具体步骤包括:克隆gRPC源码、生成Visual Studio 2015工程文件、配置静态链接库模式、最终编译gRPC。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值