ubuntu系统安装grpc(踩坑与解决)

1、主流程按照官方走
https://grpc.io/docs/languages/cpp/quickstart/
2、中间安装第三方库是自动的,官方貌似是合在一起了。分开会好些

git clone https://github.com/grpc/grpc.git
cd grpc
git submodule update --init #可能需要重复多次

第三句多次失败,可以在主机上从github下载好,然后将文件夹改好名拖进third_party(若已存在文件夹,只拖内容)
尤其是protobuf,建议先下载好这个库,改好名,然后下载googletest改好名,拖进protobuf/third_party,然后将protobuf拖进grpc/third_party,然后进行安装。
3、能用cmake就用cmake,gcc、cmake要尽可能升级
4、在运行helloworld时候,可能会出问题:
undefined reference之类。检查这些函数对应的包

运行./grpc/test/distrib/cpp/run_distrib_test_cmake.sh
(参考https://github.com/grpc/grpc/issues/15587)

发现有的包编译不通过(对应文件夹没有cmakelists.txt),看看third_party中的对应文件夹是不是只有一个cmake文件夹或是空的,若果是,补上。典型的就是undefined reference to deflateInit2_' 、deflate’ crc32'crc32’ `deflateEnd’。要补上zlib那个文件夹的内容(从github下载后拖进去即可)

最后,编译时又出问题:
error while loading shared libraries: libcares.so.2: cannot open shared object file: No such file or directory

ldconfig一下就好了,不过我也事先改了环境变量。。
https://stackoverflow.com/questions/480764/linux-error-while-loading-shared-libraries-cannot-open-shared-object-file-no-s

参考
https://blog.csdn.net/qq_34039018/article/details/88766816

https://libaineu2004.blog.csdn.net/article/details/80734547?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.baidujs

https://blog.csdn.net/l7l1l0l/article/details/103965514

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值