针对grpc 和 curl的编译专门出了一篇文章,因为 它们同时依赖了 openssl…
这里的坑还挺大的…
20240924 指定3.3.2版本的openssl编译
curl的编译在这篇文档里面也有讲到:
20240924 指定8.4.0版本的curl编译
这里grpc的编译看这篇文档就行了:
那问题主要就出在openssl版本上。
curl 依赖的openssl版本默认是系统版本
grpc依赖的openssl版本默认是third_party的版本
所以解决他们之间依赖的办法:
- curl依赖grpc的openssl版本
- curl和grpc都使用系统版本
这里采用了方案2,那么需要修改grpc的编译命令:
grpc v1.36.4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
git clone -b v1.36.4 https://gitee.com/tkxiong/grpc cd grpc git submodule init vim .git/config git submodule update mkdir -p cmake/build mkdir -p release/ cd cmake/build cmake -DgRPC_INSTALL=ON \ -DCMAKE_BUILD_TYPE=Release \ -DgRPC_BUILD_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX=../../release \ -DgRPC_SSL_PROVIDER=package \ ../.. make -j make install |
设置 gRPC_SSL_PROVIDER=package 标识使用系统的openssl。
2023.09.28 tkxiong
前几天重新编译了 v1.58.1 版本的grpc。
上面的编译内容依旧适用,只需要修改对应的版本号即可。
2024.09.26 tkxiong
重新编译了 v1.65.5 版本的grpc,采用了挂代理连github的方式。
在使用ssl的时候,我们用openssl的静态库。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
git clone -b v1.65.5 https://github.com/grpc/grpc grpc-1.65.5 cd grpc-1.65.5 git submodule update --init mkdir -p cmake/build && cd cmake/build cmake -DgRPC_INSTALL=ON \ -DCMAKE_BUILD_TYPE=Release \ -DgRPC_BUILD_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX=../../release \ -DgRPC_SSL_PROVIDER=package \ -DOPENSSL_USE_STATIC_LIBS=TRUE \ ../.. make -j make install |
…
【编译】grpc curl 及其依赖库编译。