gpt4 book ai didi

android - 在 windows 上使用 eclipse 编译和使用 OpenSSL for Android

转载 作者:可可西里 更新时间:2023-11-01 10:08:21 28 4
gpt4 key购买 nike

我正在使用 Eclipse 在 Windows 上开发一个 Android 应用程序。我想为我的 Android 应用程序使用 OpenSSL。它需要通过 NDK 与 C++ 一起使用。我试图从 https://github.com/fries/android-external-openssl 下载 fries 的 OpenSSL 源代码并 build 它。我阅读了 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 目录放在 project/jni 目录中的 Android 项目中,那么这些变量将不再指向正确的位置。我解决它的方法是将这些路径修改为相对于 LOCAL_PATH:

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

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

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com