Мне нужно собрать последнюю версию OpenSSL (1.0.0g) для приложения Android. Я пытаюсь следовать примеру, приведенному https://github.com/fries/android-external-openssl, но я просто не могу собрать его.
Я использую Windows 7 Professional (64-bit) с полным и последним Cygwin. Я установил Android SDK и NDK, и могу успешно собрать и запустить пример приложения hello-jni из NDK.
Я создал новый пример NDK-приложения под названием hello-openssl. В каталоге 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
Затем я изменил Android. mk файл в каталоге jni в попытке включить файлы 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 к вышеуказанным LOCAL_C_INCLUDES" в crypto/Android.mk, но я не могу понять, какой синтаксис я должен использовать для этого.
Я также не могу понять, правильная ли у меня структура каталогов.
Я искренне ценю любую помощь, которая может быть предложена.
Спасибо!