无法使用ndk为android生成openssl的静态库

时间:2012-09-08 12:08:58

标签: c++ android-ndk makefile openssl

我在cpp中编写了一个模块,它使用openssl进行SSL通信。我决定在Android应用程序中使用此模块,在此之上编写JNI层。现在主要的问题是我需要使用ndk构建的openssl“静态”库。

我从这个链接git repository

获得了openssl包

如果我正在使用它,因为它用于构建共享库,但是我想为静态库构建它,这非常有用。我是一个非常新的文件。有人可以指导我如何在这个openssl包中更改makefile,我从上面给出了链接以获取静态库..?

提前感谢。

1 个答案:

答案 0 :(得分:1)

首先,您的JNI可以链接到共享的OpenSSL库。在加载使用它们的JNI库之前,您只需要从Java代码加载这些库。

其次,OpenSSL库(共享对象)安装在任何Android上,因此您可能根本不需要构建它们。版本可能会有所不同,但在Android 4.01树中,版本比八股git中的版本更高级。

最后,如果您的NDK安装在$(NDK_ROOT)目录中,您只需运行以下命令:

$(NDK_ROOT)/ndk_build APP_MODULES="ssl crypto" BUILD_SHARED_LIBRARY="$(NDK_ROOT)/build/core/build-static-library.mk"

(来自第八个git clone的根目录) ...并且自动地你会发现静态库obj / local / armeabi / libcrypto.a和obj / local / armeabi / libssl.a