【发布时间】:2012-02-22 08:06:34
【问题描述】:
我需要为 Android 应用程序构建最新的 OpenSSL (1.0.0g)。我正在尝试遵循https://github.com/fries/android-external-openssl 给出的示例,但我无法构建它。
我正在运行带有完整且最新的 Cygwin 的 Windows 7 Professional(64 位)。我已经安装了 Android SDK 和 NDK,我可以成功构建和运行 NDK 的 hello-jni 示例应用程序。
我创建了一个名为 hello-openssl 的新示例 NDK 应用程序。在它的 jni 目录中,我创建了一个 openssl 目录。在那里,我解压缩了https://github.com/fries/android-external-openssl/zipball/master,它在 c:\android\android-ndk\samples\hello-openssl: 下给了我这个树结构:
jni
+- openssl
+- apps
+- crypto
+- include
+- openssl
+- ssl
然后我修改了 jni 目录中的 Android.mk 文件以尝试包含 OpenSSL 文件:
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
openssl \
))
include $(subdirs)
现在当我执行 ndk-build 时,它编译了几个 .c 文件,但很快就失败了:
Compile thumb : crypto <= cryptlib.c
In file included from jni/openssl/crypto/cryptlib.c:117:
jni/openssl/crypto/cryptlib.h:65:18: error: e_os.h: No such file or directory
jni/openssl/crypto/cryptlib.h:72:28: error: openssl/crypto.h: No such file or directory
我找到了http://osdir.com/ml/android-ndk/2010-07/msg00424.html,它告诉我“添加 jni 和 jni/include 到 crypto/Android.mk 中的上述 LOCAL_C_INCLUDES",但我不知道应该使用什么语法来实现这一点。
我也无法确定我的目录结构是否正确。
我真诚地感谢可以提供的任何帮助。
谢谢!
【问题讨论】:
标签: android android-ndk openssl