在使用eclipse的windows上编译并使用OpenSSL for Android
我正在使用eclipse在windows上开发一个Android应用程序。 我想为我的Android应用程序使用OpenSSL。它需要通过NDK与C++一起使用。 我试图从下载fries的OpenSSL源代码并构建它。 我阅读了README.android文件,但我不明白这些说明的用途。 除了fries源代码之外,我还需要下载OpenSSL源代码吗? 我已经试着把Fries’中的所有文件放到Android项目的jni文件夹中。它抱怨没有找到e_os.h和openssl/crypto.h以及其他类似的东西。 更具体地说:在使用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以及其他类
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
)执行此操作