Невозможно собрать внешнюю библиотеку OpenSSL для Android NDK на Windows/Cygwin

Мне нужно собрать последнюю версию 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, но я не могу понять, какой синтаксис я должен использовать для этого.

Я также не могу понять, правильная ли у меня структура каталогов.

Я искренне ценю любую помощь, которая может быть предложена.

Спасибо!

5
задан Martin Del Vecchio 30 January 2012 в 14:31
поделиться