我想编译库(静态的,而是也可以共享)用C++编写,以便它是静态包含了我在图书馆使用所有C++运行时功能,即另一个项目可以简单地包括我。一个或.so文件,而不必担心进一步的依赖关系。我如何使用NDK/Android构建系统来做到这一点?如何静态编译C++运行时到Android上的NDK/JNI库?
到目前为止,我有
APP_STL := c++_static
在我Application.mk和设置项目后,在我的Android.mk生成使用
include $(BUILD_STATIC_LIBRARY)
我的图书馆。但是,如果我然后在出现的库中取出到第二个项目(比方说,一个动态库)没有指定的STL(如纯C)我得到找不到符号链接错误的负载。只有当我指定在第二个项目中使用C++ _ static STL时,这些错误消失了,表明C++ _ static没有被拉入第一个库中。 (我知道这并不奇怪,但这不是我想要的行为)。
使用好醇” make文件,并指定建立自己的标志让我结合静态库。我的问题是哄骗NDK编译系统做,如果你静态编译C++运行时到库,遗憾的是另一个项目有担心这种依赖性吧:)