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。