Android NDK构建共享库

用户名

我是NDK的新手,我想在我的应用程序中使用ac库。我尝试一个简单的C文件,它可以工作。我成功地在两个api之间发送和接收数据。但是,当我想引入现有的c库时,在运行ndk-build时会出现这种错误。

root@xxx:~/workspace/Myproject# ndk-build
Android NDK: WARNING: APP_PLATFORM android-16 is larger than android:minSdkVersion 8 in /root/workspace/MyOpus/AndroidManifest.xml    
[armeabi-v7a] Compile thumb  : my_manager <= myencoder.c
[armeabi-v7a] SharedLibrary  : libmy_manager.so
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: ./obj/local/armeabi-v7a/libopus.so: incompatible target
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/my_manager/src/myencoder.o: in function myEncodeOpus:/root/workspace/MyOpus/jni/src/myencoder.c:81: error: undefined reference to 'opus_encoder_create'
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/my_manager/src/myencoder.o: in function myEncodeOpus:/root/workspace/MyOpus/jni/src/myencoder.c:84: error: undefined reference to 'opus_strerror'
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/my_manager/src/myencoder.o: in function myEncodeOpus:/root/workspace/MyOpus/jni/src/myencoder.c:93: error: undefined reference to 'opus_encoder_ctl'
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/my_manager/src/myencoder.o: in function myEncodeOpus:/root/workspace/MyOpus/jni/src/myencoder.c:96: error: undefined reference to 'opus_strerror'
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/my_manager/src/myencoder.o: in function myEncodeOpus:/root/workspace/MyOpus/jni/src/myencoder.c:120: error: undefined reference to 'opus_encode'
/usr/local/mes_installations/android_tool/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs/my_manager/src/myencoder.o: in function myEncodeOpus:/root/workspace/MyOpus/jni/src/myencoder.c:123: error: undefined reference to 'opus_strerror'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi-v7a/libmy_manager.so] Error 1

我怎么解决这个问题?我阅读了所有Android.mk文档,但没有发现任何解决方法。问候

用户名

您说您成功创建了共享库libmy_manager在Android.mk中指定的路径libmy_manager.so和头文件的路径

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libmy_manager
LOCAL_SRC_FILES := libmy_manager.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include  #path of header file with define               
                                                  # function in libmy_manager
include $(PREBUILT_SHARED_LIBRARY)


include $(CLEAR_VARS)
LOCAL_MODULE    := my_manager
LOCAL_SRC_FILES := my_manager.c
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_SHARED_LIBRARIES := libmy_manager
include $(BUILD_SHARED_LIBRARY)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android NDK预构建共享库使用

来自分类Dev

无法将预构建的静态库与 Android NDK 中的共享库链接起来

来自分类Dev

如何链接Android NDK共享库?

来自分类Dev

Android NDK:将静态库与共享库链接

来自分类Dev

如何使Android Q源构建共享库?

来自分类Dev

Android Gradle构建:父子之间的共享库

来自分类Dev

使用Android NDK将共享库和静态库编译为共享库

来自分类Dev

NDK和Android Studio,由于共享库而导致编译崩溃

来自分类Dev

Android NDK:两个预构建的共享库,但是其中一个依赖于另一个

来自分类Dev

如何使用Android Studio + Gradle + NDK构建外部C ++库?

来自分类Dev

在构建NDK共享库时导出标题

来自分类Dev

在Android AOSP中包含预构建的共享库

来自分类Dev

如何包括许多共享库.so以构建android apk

来自分类Dev

视觉c ++跨平台android:包括预构建的共享库

来自分类Dev

如何为Android NDK使用共享库(将C库添加到C ++)

来自分类Dev

Android NDK可以将Windows dll包含到Android共享库中吗?

来自分类Dev

android ndk中的共享内存

来自分类Dev

如何在最终apk中正确解析android ndk共享库依赖关系

来自分类Dev

有没有办法找出哪个ndk版本用于编译android .so共享库?

来自分类Dev

Android NDK链接共享库libxxx.so.ver而不是libxxx.so

来自分类Dev

Android NDK - 链接共享库和 JNI 包装器时出错

来自分类Dev

从源代码构建Android-添加具有共享库的预构建应用

来自分类Dev

Android Studio构建NDK错误

来自分类Dev

为android ndk构建dlib

来自分类Dev

ZBar库构建因Android NDK而失败(预期标识符或“。”之前的“(”))

来自分类Dev

添加预构建库时Android NDK Cmake默认根目录

来自分类Dev

在多个平台上使用包含的共享库构建NDK

来自分类Dev

如何强制Android Studio使用更新的NDK库进行构建,而无需清理和构建整个项目?

来自分类Dev

Android NDK-具有多个NDK构建的构建应用

Related 相关文章

  1. 1

    Android NDK预构建共享库使用

  2. 2

    无法将预构建的静态库与 Android NDK 中的共享库链接起来

  3. 3

    如何链接Android NDK共享库?

  4. 4

    Android NDK:将静态库与共享库链接

  5. 5

    如何使Android Q源构建共享库?

  6. 6

    Android Gradle构建:父子之间的共享库

  7. 7

    使用Android NDK将共享库和静态库编译为共享库

  8. 8

    NDK和Android Studio,由于共享库而导致编译崩溃

  9. 9

    Android NDK:两个预构建的共享库,但是其中一个依赖于另一个

  10. 10

    如何使用Android Studio + Gradle + NDK构建外部C ++库?

  11. 11

    在构建NDK共享库时导出标题

  12. 12

    在Android AOSP中包含预构建的共享库

  13. 13

    如何包括许多共享库.so以构建android apk

  14. 14

    视觉c ++跨平台android:包括预构建的共享库

  15. 15

    如何为Android NDK使用共享库(将C库添加到C ++)

  16. 16

    Android NDK可以将Windows dll包含到Android共享库中吗?

  17. 17

    android ndk中的共享内存

  18. 18

    如何在最终apk中正确解析android ndk共享库依赖关系

  19. 19

    有没有办法找出哪个ndk版本用于编译android .so共享库?

  20. 20

    Android NDK链接共享库libxxx.so.ver而不是libxxx.so

  21. 21

    Android NDK - 链接共享库和 JNI 包装器时出错

  22. 22

    从源代码构建Android-添加具有共享库的预构建应用

  23. 23

    Android Studio构建NDK错误

  24. 24

    为android ndk构建dlib

  25. 25

    ZBar库构建因Android NDK而失败(预期标识符或“。”之前的“(”))

  26. 26

    添加预构建库时Android NDK Cmake默认根目录

  27. 27

    在多个平台上使用包含的共享库构建NDK

  28. 28

    如何强制Android Studio使用更新的NDK库进行构建,而无需清理和构建整个项目?

  29. 29

    Android NDK-具有多个NDK构建的构建应用

热门标签

归档