Android ndk 如何使用Android ndk构建到第三部分静态库的静态库链接

Android ndk 如何使用Android ndk构建到第三部分静态库的静态库链接,android-ndk,static-libraries,Android Ndk,Static Libraries,我想建立一个指向第三部分静态库的静态库链接。然后将我构建的静态库提供给其他人使用。但是当其他人使用我的库时,他们发现一个错误“未定义对'Func1()'的引用”,“Func1()”是在第三部分静态库中定义的函数。有人知道如何修复它吗 Here's my Android.mk: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := ThirdLib_Rebuild LOCAL_SRC_FILES := libT

我想建立一个指向第三部分静态库的静态库链接。然后将我构建的静态库提供给其他人使用。但是当其他人使用我的库时,他们发现一个错误“未定义对'Func1()'的引用”,“Func1()”是在第三部分静态库中定义的函数。有人知道如何修复它吗

Here's my Android.mk:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := ThirdLib_Rebuild
LOCAL_SRC_FILES := libThird.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := MyLib
LOCAL_STATIC_LIBRARIES := ThirdLib_Rebuild
LOCAL_SRC_FILES := MyLib.c
include $(BUILD_STATIC_LIBRARY)

ndk build支持可传递的依赖关系,即,如果您定义了一个依赖于MyLib模块的共享库或可执行文件,那么libMyLib.a和libThird.a都将链接到其中(如果不是,这是一个bug,您到底在使用哪个ndk?)

但是,当您将库分发给其他人时,您并不十分清楚自己在做什么。为了记录,您需要将这两个库分发给用户,因为libMyLib.a不包括libThird.a中的代码,在MyLib模块定义中使用本地_STATIC_库只用于记录两个库之间的依赖关系,这与将其用于共享库或可执行文件时不同