首页 > 其他分享 >编译、交叉编译 gRPC

编译、交叉编译 gRPC

时间:2022-10-14 22:34:44浏览次数:78  
标签:tmp cmake .. 交叉 gRPC 编译 DCMAKE grpc

编译、交叉编译 gRPC

心得体会:优先看官方教程,不要随便百度一篇 CSDN/博客园教程照着做!
如果你搜到这篇文章,而且还没看过 Google 官方的编译教程,建议先看看文章底部的参考链接

1 下载代码

git clone -b v1.48.x https://github.com/grpc/grpc --depth=1
cd grpc
git submodule update --init --depth=1

2 编译 host x86_64

mkdir -p cmake/build
pushd cmake/build
cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -DgRPC_INSTALL=ON \
  -DgRPC_BUILD_TESTS=OFF \
  -DgRPC_SSL_PROVIDER=package \
  ../..
sudo make -j6 install
popd

3 设置交叉编译工具链

# Write a toolchain file to use for cross-compiling.
cat > /tmp/toolchain.cmake <<'EOT'
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_STAGING_PREFIX /tmp/stage)
# 以下两行根据所用的交叉编译器所在路径修改
set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
EOT

4 交叉编译

mkdir -p "cmake/build_arm"
pushd "cmake/build_arm"
cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/toolchain.cmake \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/tmp/install \
      ../..
make -j6 install
popd

5 交叉编译 HelloWorld

# Build helloworld example for ARM.
# As above, it will find and use protoc and grpc_cpp_plugin
# for the host architecture.
mkdir -p "examples/cpp/helloworld/cmake/build_arm"
pushd "examples/cpp/helloworld/cmake/build_arm"
cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/toolchain.cmake \
      -DCMAKE_BUILD_TYPE=Release \
      -Dabsl_DIR=/tmp/stage/lib/cmake/absl \
      -DProtobuf_DIR=/tmp/stage/lib/cmake/protobuf \
      -DgRPC_DIR=/tmp/stage/lib/cmake/grpc \
      ../..
make -j6

参考链接

标签:tmp,cmake,..,交叉,gRPC,编译,DCMAKE,grpc
From: https://www.cnblogs.com/tengzijian/p/16793218.html

相关文章

  • Excel行列交叉查找的另类思路!
    Excel情报局职场联盟Excel生产挖掘分享Excel基础技能Excel爱好者大本营用1%的Excel基础搞定99%的职场问题做一个超级实用的Excel公众号Excel是门手艺玩转需要勇气数万Excel......
  • 反编译APK获取代码以及资源
    需要工具:1、apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件2、dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)3、jd-gui:查看转换后的jar......
  • 编译安装linux内核
    下载内核​​https://www.kernel.org/​​一般下载tarball,也就是.tar.xz格式的源码包。如果​​/​​​够大,可以直接解压到​​/usr/src​​,也可以解压到机械盘上。配置sudo......
  • java 在命令行下引用三方包编译并执行
    参考:https://blog.csdn.net/xuejiaodream/article/details/79161938方法:命令行进行.java当前目录,执行下面的命令编译java程序,$javac-cp".:fastjson-1.2.4.jar"HttpDemo......
  • 关于编辑器和解释型编译型语言
    各种语言用到的编辑器python开发:pycharm(收费),vscode(免费),sublintext,go开发:goland(收费),vscode,国产的java:idea(收费),eclipse(免费),MyEclipse(收费)android:androidstudio(免费),eclips......
  • D3Q编译问题
     Step1:跳转到gsnew2010节点Code:sshgsnew2010Step2:加载环境变量Code:moduleloadcompiler/intel/oneapiStep3:编译Code:make ......
  • Ubuntu编译安装protobuf
    一、下载源码包下载源码URL:https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz也可到https://github.com/protocolbuff......
  • C语言之不常用的预编译命令
    C语言之不常用的预编译命令最近在做单片机的开发,我发现一些功能需要反复使用(个人习惯),所以今天决定写一些常用的函数作为自己的库。然后发现了一个自己忽略了很久的问题,那......
  • python3 批量编译pyc文件
    compile.pyimportos,shutilimportcompileallimportsysimportredefcopy_to_up(path):forfinos.listdir(path):iff=='__pycache__':......
  • linux内核编译过程及配置说明解释(6)--Networking support,Device drivers
    Networkingsupport     Networkingoptions --->                                           xx Thisinterfac......