Android ndk 64位android ndk预构建共享库

Android ndk 64位android ndk预构建共享库,android-ndk,shared-libraries,Android Ndk,Shared Libraries,我正在链接一个预构建的共享库。我找到了我的.so文件,文件是64位的,文件信息如下所示 li@cleanerSaddy:/usr/local/lib$ file libspd.so.3.0.0 libspd.so.3.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=0x1148c741ed5bf3568abd82ec33187b9cf9117c

我正在链接一个预构建的共享库。我找到了我的.so文件,文件是64位的,文件信息如下所示

li@cleanerSaddy:/usr/local/lib$ file libspd.so.3.0.0 
libspd.so.3.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=0x1148c741ed5bf3568abd82ec33187b9cf9117cf5, not stripped
li@cleanerSaddy:~/Projects/spd-viewer-on-android$ ndk-build
[x86] Install        : libspdio.so => libs/x86/libspdio.so
[x86] SharedLibrary  : libhello-jni.so
/home/li/Android/adt-bundle-linux-x86_64-20131030/android-ndk-r9b/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.6/../../../../i686-linux-android/bin/ld: error: ./obj/local/x86/libspdio.so: incompatible target
collect2: ld returned 1 exit status
make: *** [obj/local/x86/libhello-jni.so] Error 1
当我运行ndk build时,它给了我“无法兼容的目标”。如下所示

li@cleanerSaddy:/usr/local/lib$ file libspd.so.3.0.0 
libspd.so.3.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=0x1148c741ed5bf3568abd82ec33187b9cf9117cf5, not stripped
li@cleanerSaddy:~/Projects/spd-viewer-on-android$ ndk-build
[x86] Install        : libspdio.so => libs/x86/libspdio.so
[x86] SharedLibrary  : libhello-jni.so
/home/li/Android/adt-bundle-linux-x86_64-20131030/android-ndk-r9b/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.6/../../../../i686-linux-android/bin/ld: error: ./obj/local/x86/libspdio.so: incompatible target
collect2: ld returned 1 exit status
make: *** [obj/local/x86/libhello-jni.so] Error 1
这是我的ABI
APP\u ABI:=x86


那么,为了成功编译第三方库,我该如何解决这个问题呢?

没有Android系统是64位的,您的库应该编译为32位,最好是使用Android NDK工具链。

谢谢,我使用32位VM来获得32位共享库对不起,恐怕您走错了方向。您可以在64位Linux系统上编译32位库。但是在任何情况下,你都需要一个Android的交叉编译器。最简单的方法是使用NDK工具链,非常感谢!我知道如何立即构建为了完整性,Android现在提供64位。他们于2014年10月向其提供了10c NDK。请参见Android博客上的。