Windows 环境编译 Grpc 1.30.2 小记

真烦

Posted by cj on August 1, 2020

Windows 环境编译 Grpc 1.30.2 小记

项目里用的 grpc 还是 1.11.1,最近要给项目加功能,顺便更新一下 grpc,坑还是不少。。。

代码下载

码云真香!把 grpc 项目和 submodules 都导入到码云然后手动 git clone,真香!疯狂给码云打电话!

编译

参考 BUILDING.md,使用 cmake 生成 Visual Studio sln 的方式编译。

cmake 用的不多,还是用界面的方式吧,命令行不好控制参数。运行 cmake 3.16.1souce code 设置为 grpc 源码存放路径,编译目录就放在外面同级的 bulid 目录下,点击 Configure,工具集设置为 Visutal Studio 2017 x64

  1. 第一个坑来了

    go 找不到的错误,真烦,到 https://studygolang.com/dl 下载个 go1.14.6.windows-amd64.mse,安装之,安装完成后自动将 go.exe 的路径加到了 PATH 里,倒是省心。继续 Configure,不报错了,点击 Generate ,打开 build/grpc.sln,编译之,又是一堆错误。。。

  2. 第二个坑来了

    首先是 crypto 项目报 go: golang.org/x/crypto@v0.0.0-20200622213623-75b288015ac9: Get "https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20200622213623-75b288015ac9.mod": dial tcp 34.64.4.81:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. 错误,搜索了下后按照 这篇文章go 设置个代理 go env -w GOPROXY=https://goproxy.cn,direct,再次编译 crypto 项目成功。

  3. 第三个坑来了:

    再就是 grpcgrpc++, grpc++_alts 等几个项目的 openssl 路径有问题,报找不到 openssl/x509.h 的错误,把 c++ 库路径 改正就行了:自动生成的是 G:\dev_libs\google\captainwong-grpc-master\grpc\third_party\boringssl-with-bazel\src\include, 真实应该是 G:\dev_libs\google\captainwong-grpc-master\grpc\third_party\boringssl-with-bazel\include,多了一层 src

怎么有种坑越多越爽的感觉?一定是幻觉。。。

最后,生成一下 INSTALL项目,相当于 make install 了,cmake 自动设置了安装路径为 C:\program files\grpc,可以修改后重新 generate