gpt4 book ai didi

android - 与Android NDK链接库时如何解决 "incompatible target"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:25:42 24 4
gpt4 key购买 nike

我想将我使用 Android NDK 编译器为 arm 编译的库与 Android 项目链接起来。但是在编译时出现以下错误:

/home/android/android-ndk-r9/sources/libraryname/android/arm/lib/libname.so: 
incompatible target

我对库和我正在链接的项目使用相同的编译器。我在这里做错了什么?

库是使用以下脚本构建的:

NDK=/home/android/android-ndk-r9
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
./configure \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
make clean
make
make install

这是来自已编译库的 objdump:

xa.o:     file format elf32-i386
rw-r--r-- 0/0 47720 Aug 3 03:22 2014 xa.o

这是来自与 NDK 一起使用的库的 objdump:

libopentut_la-functionalRegression.o:     file format elf32-little
rw-r--r-- 0/0 206612 Aug 3 03:22 2014 libopentut_la-functionalRegression.o

最佳答案

如果您使用的是 ANDROID STUDIOS

确保在您的 build.gradle 中您没有其他不需要的 abi。

例如,如果我的库 .so 文件仅适用于 32 位并且我有类似的东西

ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}

在我的 build.gradle 中,它会因这个错误而失败。

关于android - 与Android NDK链接库时如何解决 "incompatible target"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com