neno NE10代码库android编译及引用。

NE10仓库: git clone https://github.com/projectNe10/Ne10.git
关于编译方式,在代码的doc/building.md中有说明。
关于linux平台的交叉编译,基本不会遇到问题,在Android平台编译过程中遇到问题,花了一点时间。按照building.md中说明,过程如下,
cd $NE10_PATH
mkdir build && cd build
export ANDROID_NDK=/absolute/path/of/android-ndk
export NE10_ANDROID_TARGET_ARCH=armv7 # Can also be “aarch64”
cmake -DCMAKE_TOOLCHAIN_FILE=…/android/android_config.cmake …
make

问题主要出在Android ndk上,一开始用了android-ndk-r21e-linux-x86_64.zip版本,但是在NE10的编译脚本中使用gcc, g++等编译,在新版本的ndk中,已经没有g++,gcc的命令,用clang++, clang替换,中间也尝试修改android_config.cmake中的脚本工具,链接路径设置等,一度认为接近成功,但最终由于ld, -lc++报错放弃。
(使用21e版本的ndk,源于误解了:
ANDROID_API_LEVEL specifies the Android API level.

  • This defaults to the value 14, but must be greater than or equal to 21 for AArch64 targets.
    认为也需要ndk为21以上的版本。)

最终采用android-ndk-r14b-linux-x86_64.zip的ndk成功编译android版本armv7和aarch64版本的so文件,编译方式按照文档中步骤。

在android.bp中引用:
cc_prebuilt_library_shared {
name: “libNE10”,

  vendor: true,

  proprietary: true,

  strip: {
      none: true,
  },

  compile_multilib: "both",

  multilib: {
      lib64: {
          srcs: ["lib64/libNE10.so"],
      },
      lib32: {
          srcs: ["lib/libNE10.so"],
      },
  },

  relative_install_path: "soundfx",

}

cc_library_shared {

shared_libs: [

libNE10,
],

}

如果未加cc_prebuilt_library_shared定义,则报错:
Android.bp:25:1: “lib” depends on undefined module “libNE10”

关于生成so文件名,默认为libNE10.so.10,在android.bp的引用一直报错,多了.10认不到,试过软链接也没成功。
解决办法在生成so库时,删除.10后缀(直接修改so文件名是不行的)
在这里插入图片描述
去除VERSION配置,如下图,生成so即不带.10后缀
在这里插入图片描述

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值