android - 在 Android 上编译并使用 OpenSSL,在 Windows 上使用 eclipse

标签 android windows eclipse openssl

我正在 Windows 上使用 Eclipse 开发 Android 应用程序。 我想在我的 Android 应用程序中使用 OpenSSL。它需要通过 NDK 与 C++ 一起使用。 我尝试从https://github.com/fries/android-external-openssl下载fries的OpenSSL源代码并构建它。 我阅读了 README.android 文件,但我不明白这些说明的用途。 除了 fries 源代码之外,我还需要下载 OpenSSL 源代码吗? 我尝试将 Fries 中的所有文件放入 Android 项目的 jni 文件夹中。它提示找不到 e_os.h 和 openssl/crypto.h 以及其他类似的东西。 更具体地说:

In file included from D:/Projects/Fatal/Android/OpenSSL/jni/ssl/s2_meth.c:59:
D:/Projects/Fatal/Android/OpenSSL/jni/ssl/ssl_locl.h:124:18: error: e_os.h: No such file or directory
D:/Projects/Fatal/Android/OpenSSL/jni/ssl/ssl_locl.h:126:28: error: openssl/buffer.h: No such file or directory
D:/Projects/Fatal/Android/OpenSSL/jni/ssl/ssl_locl.h:127:26: error: openssl/comp.h: No such file or directory

我不确定为什么它找不到这些文件,我尝试将各种路径添加到各种 Android.mk 文件中的 LOCAL_C_INCLUDES 中,但没有任何效果。

我想知道如何为 Android 构建 OpenSSL。谢谢。

最佳答案

我知道这已经很旧了,但是当我搜索这个问题时,我一直遇到这个问题。如果您正在构建一个独立的 OpenSSL 来配合您的项目并遇到此错误,我按照 this thread 找到了解决方案:

openssl-android/cryptoopenssl-android/sslopenssl-android/apps 中,您会发现一个变量local_c_includes 的声明如下:

local_c_includes := \
    $(NDK_PROJECT_PATH) \
    $(NDK_PROJECT_PATH)/crypto/asn1 \
    $(NDK_PROJECT_PATH)/crypto/evp \
    $(NDK_PROJECT_PATH)/include \
    $(NDK_PROJECT_PATH)/include/openssl

如果您已将 openssl-android 目录放置在 Android 项目的 project/jni 目录中,则这些变量将不再指向正确的位置。我解决这个问题的方法是将这些路径修改为相对于 LOCAL_PATH:

local_c_includes := \
    $(LOCAL_PATH)/.. \
    $(LOCAL_PATH)/asn1 \
    $(LOCAL_PATH)/evp \
    $(LOCAL_PATH)/../include \
    $(LOCAL_PATH)/../include/openssl

请记住,您必须对尝试构建的每个目录(cryptosslapps 执行此操作>)。

关于android - 在 Android 上编译并使用 OpenSSL,在 Windows 上使用 eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8500246/

相关文章:

android - 我们可以固定所选标签的位置吗?

android - 为什么我的本地视频流在通话期间会旋转?

android 支持 v7 util 缺失

c++ - MSVC 函数名修饰

eclipse - SVN - 忽略存储库中已有的文件

android - 超薄库不支持带有多个 TextView 的标题

java - 定义简单的java类,然后编写时出错(权限被拒绝)

c++ - C/C++ iTunes API 在哪里? (不是 COM!)

java - Android 应用程序因代码错误而崩溃,不理解 logcat 消息

eclipse - 类路径条目 eclipse.fproj.jdt.libprov.osgi/jpt.jpa 标记为发布/导出,但未在项目类路径上导出