grpc 交叉编译之第三方package模式

目的: 不想用grpc自带的第三方版本,或已有其他已编译好的库

(openssl) 已交叉编译好openssl, 在大型工程涉及多个团队时很有效,可以对齐openssl版本,避免问题,由于在工程遇到此问题,记录在此

-DgRPC_SSL_PROVIDER=package 
-DOPENSSL_INCLUDE_DIR=    #openssl 头文件所在位置  
-DOPENSSL_CRYPTO_LIBRARY=   # libcrypto.so所在位置+libcrypto.so
-DOPENSSL_SSL_LIBRARY=    # libssl.so所在位置+libssl.so

(zlib) 已交叉编译好的openssl库, 用法同上

-DgRPC_ZLIB_PROVIDER=package
-DZLIB_LIBRARY=
-DZLIB_INCLUDE_DIR=

(protobuf) 用法同上

-DgRPC_PROTOBUF_PROVIDER=package 
-DProtobuf_LIBRARY=  
-DProtobuf_PROTOC_LIBRARY=   
-DProtobuf_INCLUDE_DIR=

(absl)

-DgRPC_ABSL_PROVIDER=package
-Dabsl_DIR=   #交叉编译完成并安装后,lib/cmake/absl/ 目录,此内有*.cmake配置,指向此目录,可找到安装目录

(cares) 用法同absl

-DgRPC_CARES_PROVIDER=package 
-Dcares_DIR=

Note:

交叉编译前,需要宿主机上先行编译protobuf和grpc, 因为grpc中有些代码会利用protoc生成相关代码。
以下为arm平台所用编译选项,记录在下面:
cmake -DCMAKE_TOOLCHAIN_FILE=../arm.cmake  -DgRPC_BUILD_TESTS=OFF -DProtobuf_PROTOC_EXECUTABLE=/usr/local/bin/protoc -DCMAKE_INSTALL_PREFIX=xx  -DBUILD_SHARED_LIBS=ON  DBUILD_TESTING=OFF -DABSL_RUN_TESTS=OFF -DgRPC_INSTALL=ON -DgRPC_SSL_PROVIDER=package -DOPENSSL_INCLUDE_DIR=xxx  -DOPENSSL_CRYPTO_LIBRARY=xxxx -DOPENSSL_SSL_LIBRARY=xxxx -DgRPC_ZLIB_PROVIDER=package -DZLIB_LIBRARY=xxx  -DZLIB_INCLUDE_DIR=xxx -DgRPC_ABSL_PROVIDER=package -Dabsl_DIR=xxx -DgRPC_CARES_PROVIDER=package -Dc-ares_DIR=xxx  -DgRPC_PROTOBUF_PROVIDER=package -DProtobuf_LIBRARY=xxxx  -DProtobuf_PROTOC_LIBRARY=xxxx   -DProtobuf_INCLUDE_DIR=xxx  ..
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值