android ndk预构建64位共享库



我正在链接一个预构建的共享库。我找到了我的.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

当我运行ndk构建时,它给了我"不可接受的目标"。显示在下方

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_ABI := x86

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

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

最新更新