在使用eclipse的windows上编译并使用OpenSSL for Android

在使用eclipse的windows上编译并使用OpenSSL for Android,android,windows,eclipse,openssl,Android,Windows,Eclipse,Openssl,我正在使用eclipse在windows上开发一个Android应用程序。 我想为我的Android应用程序使用OpenSSL。它需要通过NDK与C++一起使用。 我试图从下载fries的OpenSSL源代码并构建它。 我阅读了README.android文件,但我不明白这些说明的用途。 除了fries源代码之外,我还需要下载OpenSSL源代码吗? 我已经试着把Fries’中的所有文件放到Android项目的jni文件夹中。它抱怨没有找到e_os.h和openssl/crypto.h以及其他类

我正在使用eclipse在windows上开发一个Android应用程序。 我想为我的Android应用程序使用OpenSSL。它需要通过NDK与C++一起使用。 我试图从下载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_include中,但没有任何效果


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

我意识到fries的github只是修补OpenSSL源代码的东西,它不是android的独立OpenSSL。
它是必需的,因为它提供ndk的ndk构建所需的Android.mk文件。您不想使用标准gcc构建它,因为您想为Android构建它。

我知道这是一个老问题,但我在搜索这个问题时不断遇到这个问题。如果您正在构建一个独立的OpenSSL以配合您的项目,并且出现此错误,我找到了如下解决方案:

openssl-android/crypto
openssl-android/ssl
openssl-android/apps
中,您会发现
local\u-c\u-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
目录放置在
project/jni
目录中的android项目中,则这些变量不再指向正确的位置。我解决问题的方法是将这些路径修改为相对于
LOCAL\u PATH

local_c_includes := \
    $(LOCAL_PATH)/.. \
    $(LOCAL_PATH)/asn1 \
    $(LOCAL_PATH)/evp \
    $(LOCAL_PATH)/../include \
    $(LOCAL_PATH)/../include/openssl
请记住,您必须为尝试构建的每个目录(
crypto
ssl
apps
)执行此操作