android开发 NDK 动态链接多个第三方库(so)
来源:互联网 发布:c语言continue 编辑:程序博客网 时间:2024/06/07 05:00
原文:http://blog.csdn.net/victoryckl/article/details/6687083
看ndk说明文档关于第三方库(Prebuilts)的用法,安装上面的方法试了下,结果老是连接不上,第三方库中的函数连接不到:
Administrator@4ec48ba026e34ae /cygdrive/e/myprj/hello-jni/jni
$ /cygdrive/e/work/android-ndk-r5b/ndk-build
Compile thumb : hello-jni <= hello-jni.c
SharedLibrary : libhello-jni.so
E:/myprj/hello-jni/obj/local/armeabi/objs/hello-jni/hello-jni.o: In function `
st1':
E:/myprj/hello-jni/jni/hello-jni.c:12: undefined reference to `InitWordInfo'
E:/myprj/hello-jni/jni/hello-jni.c:21: undefined reference to `debug_printf'
E:/myprj/hello-jni/jni/hello-jni.c:24: undefined reference to `debug_printf'
E:/myprj/hello-jni/jni/hello-jni.c:43: undefined reference to `debug_printf'
E:/myprj/hello-jni/jni/hello-jni.c:62: undefined reference to `debug_printf'
E:/myprj/hello-jni/jni/hello-jni.c:16: undefined reference to `debug_printf'
E:/myprj/hello-jni/obj/local/armeabi/objs/hello-jni/hello-jni.o:E:/myprj/hello
ni/jni/hello-jni.c:78: more undefined references to `debug_printf' follow
collect2: ld returned 1 exit status
make: *** [/cygdrive/e/myprj/hello-jni/obj/local/armeabi/libhello-jni.so] Erro
1
后来在网上查到原因,原来是可恶Prebuilts文档有错误
http://hi.baidu.com/nalch/blog/item/f6a1ed6aec69d2cd80cb4a59.html
LOCAL_SHARED_LIBRARIES和LOCAL_SHARED_LIBRARY:注意前者是复数S形式,用于Link多个库(只有一个也可以用),后者只能添加一个链接库,可恶的文档关于Prebuilts的介绍里面给出的例子是LOCAL_SHARED_LIBRARY,使用两个库的时候第二个库死也link不上。
Android.mk修改后,就可以连接通过了。
- <span style="font-size:18px;">LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := my-init
- LOCAL_SRC_FILES := libinit.so
- #LOCAL_SRC_FILES := ../../sojni/libs/armeabi/libinit.so
- include $(PREBUILT_SHARED_LIBRARY)
- include $(CLEAR_VARS)
- LOCAL_MODULE := hello-jni
- #LOCAL_SHARED_LIBRARY := my-init #应该用复数形式,否则连接不上第三方库中的函数
- LOCAL_SHARED_LIBRARIES := my-init
- LOCAL_SRC_FILES := hello-jni.c
- include $(BUILD_SHARED_LIBRARY)
- android开发 NDK 动态链接多个第三方库(so)
- android开发ndk调用第三方so库
- android开发ndk调用第三方so库
- android开发ndk调用第三方so库
- android开发ndk调用第三方so库
- 在android里调用第三方动态链接库.so
- 使用最新版AndroidStudio2.0进行NDK开发并且链接第三方so库
- Android NDK 开发无法导入第三方so问题
- android jni开发 调用 第三方 动态链接库
- NDK开发(六):Android如何调用第三方SO库
- Android NDK 引用第三方.so库到lib下
- android ndk 怎样调用第三方的so库文件
- android ndk 调用第三方so
- android ndk 调用第三方so
- AndroidStudio通过ndk使用第三方动态链接库
- NDK调用第三方so共享库
- Jni中执行ndk-build,编译第三方静态库(.a)和动态库(.so)的Android.mk文件写法
- 如何不要让ndk-build自动删除.so, 或如何链接一个不在lib/armeabi下的第三方库 && NDK Android.mk 语法
- 如何用VC读取Excel表格中的数据详细介绍
- android 开发 NDK相关问题
- android开发 NDK 编译和使用静态库、动态库
- Android NDK支持RTTI
- 进程、线程和协程的理解
- android开发 NDK 动态链接多个第三方库(so)
- Learn Python The Hard Way Ex40翻译
- vim字符串替换
- VMware tools的用途及安装[跨系统文件拖拽]
- 十大高明的Google搜索技巧
- 安装ADT-20.0.3的时候产生org.eclipse.cdt.feature.group 0.0.0' but it could not be ..
- [Android NDK]修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 问题
- 64位linux安装Android NDK SDK的问题
- linux的Eclipse菜单没有图标解决方法