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