Компиляция и использование OpenSSL для Android, в Windows, используя Eclipse - PullRequest
2 голосов
/ 14 декабря 2011

Я разрабатываю приложение для Android на Windows, используя Eclipse.Я хотел бы использовать OpenSSL для моего приложения Android.Его нужно использовать с C ++ через NDK.Я пытался скачать исходный код Фриса OpenSSL с https://github.com/fries/android-external-openssl и собрать его.Я прочитал файл README.android, но не понял, для чего эти инструкции.Нужно ли загружать исходный код OpenSSL в дополнение к исходному коду fries?Я попытался поместить все файлы из Fries 'в мою папку jni проекта Android.Он пожаловался на то, что не нашел 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

Я не уверен, почему он не находит эти файлы, я пытался добавить все пути в LOCAL_C_INCLUDES во все виды файлов Android.mk, но ничего не получалось.*

Я хотел бы знать, как собрать OpenSSL для Android.Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 марта 2013

Я знаю, что это старый, но я продолжал сталкиваться с этим, когда я искал эту проблему. В случае, если вы строите автономный OpenSSL для своего проекта и получаете эту ошибку, я нашел решение в соответствии с этой веткой :

В openssl-android/crypto, openssl-android/ssl и openssl-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 в свой проект Android в каталог project/jni, то эти переменные больше не будут указывать на правильное местоположение. Я решил, что нужно изменить эти пути так, чтобы они были относительно LOCAL_PATH:

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

Помните, вам придется делать это для каждого из каталогов, которые вы пытаетесь создать (crypto, ssl или apps).

0 голосов
/ 16 декабря 2011

Я понял, что github fries - это просто патч для исходного кода OpenSSL, это не отдельный OpenSSL для Android. Требуется потому, что он предоставляет файлы Android.mk, которые требуются для ndk-build из ndk. Вы не хотите создавать его с помощью стандартного gcc, потому что хотите создать его для Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...