ubuntu gRPC 安装 | zip包

https://github.com/grpc/grpc/blob/master/BUILDING.md   官方教程

https://github.com/grpc/grpc/releases/tag/v1.34.0  release 版本

cmake 需要1.10版本以上

RELEASE_TAG_HERE  为你需要的 release 版本,我这里用的是 v1.34.0 

由于项目比较大, 下载速度比较慢, 还经常失败,我选择下载 zip, 然后传到我的云服务器上

git submodule update --init  会下载 .gitmodules 中的依赖包,由于网络原因,仍然采用手动下载传到云服务上的方式

 

  • 对于不需要的语言,CMakeLists.txt 可以注释掉:

 

  • 依赖包可以查看 grpc 的 CMakeLists.txt , 会根据 xxxx.cmake 查找依赖 

 

 

 

  • 在 grpc/cmake/  创建 build 目录, cmake ../..  ,注意报的错误,对于缺少的依赖库都需要安装,我们可以手动下载它们的 zip ,解压后将源文件放在相应 grpc/thirdpart 目录下,比如 cp -r  re2-master/*  grpc/thirdpart/re2  (或者修改xxx.cmake 的路径)

  

  •  对于已经手动安装的库,我们可以设置 -Dxxxx=package,依赖库的 cmake/xxx.cmake 中会 find_package, 比如 -DgRPC_SSL_PROVIDER=package;(默认为module,会从thirdpart下安装)
# NOTE: all of gRPC's dependencies need to be already installed
$ cmake ../.. -DgRPC_INSTALL=ON                \
              -DCMAKE_BUILD_TYPE=Release       \
              -DgRPC_ABSL_PROVIDER=package     \
              -DgRPC_CARES_PROVIDER=package    \
              -DgRPC_PROTOBUF_PROVIDER=package \
              -DgRPC_RE2_PROVIDER=package      \
              -DgRPC_SSL_PROVIDER=package      \
              -DgRPC_ZLIB_PROVIDER=package
$ make
$ make install
  • -DgRPC_ABSL_PROVIDER=module ,absl 从 thirdpart 下安装,否则会报 find_package error ,应该是我没有指定目录 
  • openssl 我是手动安装的,cmake 还需指定 ssl 目录(因为不在默认的/usr/local/lib下), cmake ../..  xxxxxxxxxxx(以上)  -DOPENSSL_ROOT_DIR=/usr/local/ssl -DOPENSSL_LIBRARIES=/usr/local/ssl/lib  , 否则链接失败会报错:
[  4%] Linking CXX executable greeter_async_server
/usr/local/lib/libgrpc.a(json_token.cc.o): In function `grpc_auth_json_key_create_from_json(grpc_core::Json const&)':
json_token.cc:(.text+0x24e): undefined reference to `BIO_s_mem'
json_token.cc:(.text+0x256): undefined reference to `BIO_new'
json_token.cc:(.text+0x26d): undefined reference to `BIO_puts'
json_token.cc:(.text+0x2ce): undefined reference to `PEM_read_bio_RSAPrivateKey'
json_token.cc:(.text+0x32a): undefined reference to `BIO_free'

sudo make 

sudo make install 


HelloWorld 编译

进入 examples/cpp/helloworld/ 

mkdir build && cd build 

cmake ..

make

运行 greeter_server 、greeter_client  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值