0

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

我从这个链接git 存储库得到了 openssl 包

如果我使用它来构建共享库,这非常有用,但我想为静态库构建它。我对制作文件很陌生。有人可以指导我如何更改这个openssl包中的makefile,我从上面给出的链接中得到它来获取静态库..?

提前致谢。

4

1 回答 1

1

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

其次,OpenSSL 库(共享对象)安装在任何 Android 上,因此您可能根本不需要构建它们。版本可能会有所不同,但在 Android 4.01 树中,该版本比在 Eighthave 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

于 2012-09-09T14:41:50.057 回答