使用 ndk arm-linux-androideabi-clang++ 编译器为 android 构建 grpc C++

苏拉夫·查特吉

我正在尝试使用 Android NDK CLANG 编译器(arm-linux-androideabi-clang++)从 Ubuntu 为 Android交叉编译 grpc C++(https://github.com/grpc/grpc)。

我试过下面的方法来为Android编译它。

export PATH=/root/Android/arm-26-toolchain-clang/bin:$PATH
export SYSROOT=/root/Android/arm-26-toolchain-clang/sysroot
export CC="arm-linux-androideabi-clang --sysroot $SYSROOT"
export CXX="arm-linux-androideabi-clang++ --sysroot $SYSROOT"


make CFLAGS='-std=c11 -march=armv7-a -D__ANDROID_API__=26' CXXFLAGS='- std=c++11 -frtti -fexceptions -march=armv7-a -D__ANDROID_API__=26' LIBS='-llog -lz -lc++_static' -j2

编译 zlib.c 时抛出错误 - 错误:函数 'lseek' 的隐式声明在 C99 中无效

如何使用上述 CLANG 编译器指定使用 C11 进行构建?

当我允许它继续前进而忽略此错误时,它停在下面 -

./src/core/lib/surface/completion_queue.h:92:5: error: unknown type name
  'grpc_experimental_completion_queue_functor'
 grpc_experimental_completion_queue_functor* shutdown_callback);

我试图从https://github.com/grpc/grpc/tree/master/examples/android/helloworld编译示例,但它在编译boringssl 时抛出错误。

您能否帮助为工具链 arm-linux-androideabi 交叉编译 gRPC for android?

谢谢

苏拉夫·查特吉

我可以按照 grpc github 存储库中 Makefile 中的交叉编译指令来构建它。创建了一个如下所示的 shell 脚本并且它起作用了 -

export GRPC_CROSS_COMPILE=true
export PATH=/home/ubuntu/stand-alone-toolchain/arm-26-toolchain-clang/bin:$PATH
export SYSROOT=/home/ubuntu/stand-alone-toolchain/arm-26-toolchain-clang/sysroot
export HOST_CC="/usr/bin/gcc"
export HOST_CXX="/usr/bin/g++"
export HOST_LD="/usr/bin/ld"
export CC="arm-linux-androideabi-clang --sysroot $SYSROOT"
export CXX="arm-linux-androideabi-clang++ --sysroot $SYSROOT"
export LD="arm-linux-androideabi-clang++"
export LDXX="arm-linux-androideabi-clang++" 
export AR="arm-linux-androideabi-ar"
export STRIP="arm-linux-androideabi-strip"
export PROTOBUF_CONFIG_OPTS="--host=arm-linux-androideabi --with-sysroot=${SYSROOT} --with-protoc=/usr/local/bin/protoc CFLAGS='-march=armv7-a -D__ANDROID_API__=26' CXXFLAGS='-frtti -fexceptions -march=armv7-a -D__ANDROID_API__=26' LIBS='-llog -lz -lc++_static'"
export HAS_PKG_CONFIG=false
export GRPC_CROSS_LDOPTS="-L$SYSROOT -L/home/ubuntu/cross-grpc/grpc"
export GRPC_CROSS_AROPTS="rc --target=elf32-little"

make

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用arm-linux-androideabi-gcc和android ndk编译对象时出现问题

来自分类Dev

如何使用arm-linux-androideabi编译器

来自分类Dev

Android NDK-arm-linux-androideabi-g ++:未找到

来自分类Dev

使用arm-linux-androideabi-工具链为Android生成64位可执行代码

来自分类Dev

Android NDK:为什么arm-linux-androideabi-gdb.exe消失了?

来自分类Dev

ndk和clang ++中的ARM编译器错误?

来自分类Dev

在Mac上编译x264:“找不到可用的C编译器”和“ arm-linux-androideabi-gcc:找不到命令”

来自分类Dev

arm-linux-androideabi-g ++编译错误

来自分类Dev

使用NDK gradle构建系统中的clang

来自分类Dev

尝试在Android上使用专为ARM64构建的Tensorflow-Lite C API时使用未定义的引用-NDK ARM独立工具链

来自分类Dev

错误使用ARM C编译器选项“枚举容器始终为int”的示例是什么?

来自分类Dev

使用Android系统为特殊的ARM设备构建linux内核模块

来自分类Dev

使用Android系统为特殊的ARM设备构建linux内核模块

来自分类Dev

如何使用Android Studio + Gradle + NDK构建外部C ++库?

来自分类Dev

交叉编译clang for Android arm

来自分类Dev

Android NDK clang编译器找不到std :: make_unique

来自分类Dev

为android ndk构建dlib

来自分类Dev

如何使用Visual c ++编译器为Boost 1.39.0构建库运行Cmake

来自分类Dev

Android NDK示例构建错误linux

来自分类Dev

使用ndk构建错误使用多个c文件编译本机android库*没有规则可作为目标

来自分类Dev

使用Clang编译器通过Make构建LLVM项目时出现怪异标志

来自分类Dev

默认情况下,构建是使用g ++而不是arm编译器进行的吗?

来自分类Dev

Android NDK预构建共享库使用

来自分类Dev

如何使用android studio构建ndk项目?

来自分类Dev

Android-使用NDK构建Gradle

来自分类Dev

使用scons进行构建时无法使用IAR arm编译器进行编译...许可证检查失败

来自分类Dev

如何使用jack编译器为Android编译代码?

来自分类Dev

什么是使用Bazel用android ndk工具链构建C ++目标的正确方法

来自分类Dev

使用clang到ARM:错误的链接器

Related 相关文章

  1. 1

    使用arm-linux-androideabi-gcc和android ndk编译对象时出现问题

  2. 2

    如何使用arm-linux-androideabi编译器

  3. 3

    Android NDK-arm-linux-androideabi-g ++:未找到

  4. 4

    使用arm-linux-androideabi-工具链为Android生成64位可执行代码

  5. 5

    Android NDK:为什么arm-linux-androideabi-gdb.exe消失了?

  6. 6

    ndk和clang ++中的ARM编译器错误?

  7. 7

    在Mac上编译x264:“找不到可用的C编译器”和“ arm-linux-androideabi-gcc:找不到命令”

  8. 8

    arm-linux-androideabi-g ++编译错误

  9. 9

    使用NDK gradle构建系统中的clang

  10. 10

    尝试在Android上使用专为ARM64构建的Tensorflow-Lite C API时使用未定义的引用-NDK ARM独立工具链

  11. 11

    错误使用ARM C编译器选项“枚举容器始终为int”的示例是什么?

  12. 12

    使用Android系统为特殊的ARM设备构建linux内核模块

  13. 13

    使用Android系统为特殊的ARM设备构建linux内核模块

  14. 14

    如何使用Android Studio + Gradle + NDK构建外部C ++库?

  15. 15

    交叉编译clang for Android arm

  16. 16

    Android NDK clang编译器找不到std :: make_unique

  17. 17

    为android ndk构建dlib

  18. 18

    如何使用Visual c ++编译器为Boost 1.39.0构建库运行Cmake

  19. 19

    Android NDK示例构建错误linux

  20. 20

    使用ndk构建错误使用多个c文件编译本机android库*没有规则可作为目标

  21. 21

    使用Clang编译器通过Make构建LLVM项目时出现怪异标志

  22. 22

    默认情况下,构建是使用g ++而不是arm编译器进行的吗?

  23. 23

    Android NDK预构建共享库使用

  24. 24

    如何使用android studio构建ndk项目?

  25. 25

    Android-使用NDK构建Gradle

  26. 26

    使用scons进行构建时无法使用IAR arm编译器进行编译...许可证检查失败

  27. 27

    如何使用jack编译器为Android编译代码?

  28. 28

    什么是使用Bazel用android ndk工具链构建C ++目标的正确方法

  29. 29

    使用clang到ARM:错误的链接器

热门标签

归档