用asset_manager使用NDK构建静态库r10e
问题描述:
我正在构建一个使用C++中的AAssetManager
(#include <android/asset_manager.h>
)的静态库,然后我将使用来自java的库。用asset_manager使用NDK构建静态库r10e
的事情是我不能包括libandroid
因为生成静态库时,我不能使用LOCAL_LDLIBS += -landroid
(local_ldlibs
总是被忽略的静态库)
那么如何才能建立我的静态库,而无需使用local_ldlibs
?
答
当你建立一个静态库时,你不需要满足外部引用,但是如果有人使用你的库,他们必须链接libandroid.so
。你可以把它放在你的库的文档中。
如果您提供了一个Android.mk与它,您可以设置LOCAL_EXPORT_LDLIBS = -landroid
。顺便说一句,您还可以将LOCAL_EXPORT_INCLUDES
设置为您的库的公共标题目录。
无论如何,NDK 10已经过时。我强烈建议转到当前版本(除非你急需支持android-3)。
很确定我在r13/r14中添加了'LOCAL_EXPORT_LDLIBS'。所以,是的,更新你的NDK。 –
我的问题是我没有指定APP_PLATFORM,所以它默认设置为android-3(也许因为我使用的是NDK 10)。将APP_PLATFORM设置为android-9后,问题就消失了。 –
@DanAlbert:'EXPORT_LDLIBS'出现在r10e中。我没有查看完整的历史记录。 –