【问题标题】:Not able to generate static library of openssl using ndk for android无法使用 ndk for android 生成 openssl 的静态库
【发布时间】:2012-09-08 12:08:58
【问题描述】:

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

我从这个链接git repository得到了openssl包

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

提前致谢。

【问题讨论】:

  • 我怎样才能用我们的 jni 层构建 openssl,你能告诉我这方面的细节吗?

标签: c++ android-ndk makefile openssl


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2017-07-17
    • 2011-02-25
    相关资源
    最近更新 更多