Windows 环境编译 Grpc 1.30.2 小记
项目里用的 grpc
还是 1.11.1
,最近要给项目加功能,顺便更新一下 grpc
,坑还是不少。。。
代码下载
码云真香!把 grpc
项目和 submodules
都导入到码云然后手动 git clone
,真香!疯狂给码云打电话!
编译
参考 BUILDING.md
,使用 cmake
生成 Visual Studio sln
的方式编译。
cmake
用的不多,还是用界面的方式吧,命令行不好控制参数。运行 cmake 3.16.1
,souce code
设置为 grpc
源码存放路径,编译目录就放在外面同级的 bulid
目录下,点击 Configure
,工具集设置为 Visutal Studio 2017 x64
。
-
第一个坑来了
报
go
找不到的错误,真烦,到 https://studygolang.com/dl 下载个 go1.14.6.windows-amd64.mse,安装之,安装完成后自动将go.exe
的路径加到了PATH
里,倒是省心。继续Configure
,不报错了,点击Generate
,打开build/grpc.sln
,编译之,又是一堆错误。。。 -
第二个坑来了
首先是
crypto
项目报go: golang.org/x/[email protected]: 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
项目成功。 -
第三个坑来了:
再就是
grpc
,grpc++
,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
。