Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决;不兼容目标“;当使用Android NDK链接库时?_Android_C++_Compiler Errors_Android Ndk - Fatal编程技术网

如何解决;不兼容目标“;当使用Android NDK链接库时?

如何解决;不兼容目标“;当使用Android NDK链接库时?,android,c++,compiler-errors,android-ndk,Android,C++,Compiler Errors,Android Ndk,我想将我使用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/platf

我想将我使用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 Studio

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

例如,如果我的库
.so
文件仅适用于32位,则

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

在我的
build.gradle
中,它将因此错误而失败。

尝试手动执行此操作只是自找麻烦-您确实应该使用NDK build系统或其独立的工具链功能,或者至少尝试转储它正在使用的设置(
NDK build V=1
),或者将结果文件与objdump或类似文件进行比较。