2015-04-28 2 views
1

Я новичок в NDK, я пытаюсь добавить openssl в свой проект Android с помощью C, я посмотрел и попробовал, и я не могу понять, как связать библиотеки openssl в Android, еще одна причина, по которой я прошу об этом потому что большинство страниц и сообщений, которые я нашел, говорят или говорят об этом, ничего не говорят о 64-битных арках (ARM64, MIPS64 и x86_64), только для ARM и X86 arch, я не нашел никаких недавних сообщений, использующих NDK 10 и 64 бит.Android NDK OpenSSL

Я попытался это link и я получаю сообщение об ошибке при попытке строки:

$ . ./setenv-android.sh

bash: ./setenv-android.sh: line 106: do

106 линии говорит:

for host in "linux-x86_64" "linux-x86" "darwin-x86_64" "darwin-x86" 
    do 
    if [ -d "$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI/prebuilt/$host/bin" ]; then 
    ANDROID_TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/$_ANDROID_EABI/prebuilt/$host/bin" 
    break 
    fi 
done 

, но я не знаете, как исправить код, и он вроде старый, что сообщение.

Кроме того, я попытался это link, но я не мог сделать шаг 1. gpg --import # paste PGP public key block on stdin Когда я попытался его с помощью соответствующего открытого ключа блока он не делал что-то и при попытке ./import_openssl.sh import openssl-*.tar.gz это показать ошибку и ./import_openssl.sh regenerate patches/*.patch не исправить, он также не знал, как изменить openssl.config и patches, а также я не думаю, что работа для 64-битной арки.

Может Sombody сказать мне или отправить мне как связаны библиотеки OpenSSL в НДК для всех ABI, я использую Windows 7, Cygwin и НДК 10d

+0

Ну, это выглядит ОК для меня. Кажется, это одна из двух вещей. Во-первых, убедитесь, что вы используете Unix/Linux newline ('LF'), а не Windows (' CRLF') или OS X ('CR'). Во-вторых, добавьте полуколону после 'для хоста в« linux-x86_64 »« linux-x86 »« darwin-x86_64 »« darwin-x86 »;'. Странная вещь - это запятая, которая должна быть обязательной, если 'do' находится в той же строке, что и' if'. (Кстати, я написал этот скрипт. Возможно, я перешел Windows и OS X, потому что регулярно работаю на обеих платформах). – jww

+0

Я меняю Unix/Linux newline (LF), и это работает, спасибо, но я получаю 2 ошибки, когда я делаю команду 'make depend':' cryptlib.c: 170: 3: error: # error "Несоответствие между crypto.h и cryptlib.c "' cryptlib.c: 170: 3 говорит '#if CRYPTO_NUM_LOCKS! = 41 # ошибка" Несоответствие между crypto.h и cryptlib.c " # endif' и другая ошибка' uid.c : 77: 10: error: #include ожидает «FILENAME» или #include OPENSSL_UNISTD' –

+0

Начать новую тему для выпуска с '# errors'. – jww

ответ

0

постановляю частично мою проблему, но это не полный ответ, я сделал компилировать openssl для android x86 и arm architecture в этом link Я отправляю свои достижения.

Я не буду отмечать этот ответ, как правильно, пока я не буду компилировать OpenSSL для всех архитектур

EDIT:

я отправляю ответ в этом link

+0

Вопрос был связан с ошибками запуска скрипта. Ваш ответ был * «Я изменил новую строку Unix/Linux (LF), и она работает« *. Вы должны указать ответ в этом блоке; а затем пометить его как принятое. Не меняйте вопрос и не оставляйте его открытым. Если у вас есть новый вопрос, вы должны задать новый вопрос. Так работает Stack Overflow. – jww

+0

Но вопрос был о кросс-компиляции библиотек для android, изменение в Unix newline (LF) исправить одну проблему, но у меня появились новые проблемы после этого, и я «исправил» эту новую проблему, но конечный продукт (кросс-компиляция во всех android abi), это не конец, я не думаю, что должен предоставить ответ на этом блоке, но я близок к тому, чтобы получить библиотеки opensl .so для всех abi в android (это главная задача в этом вопросе), когда я финский Я отправлю свой ответ и закрою эту тему, но я не хочу давать и неполный ответ –

Смежные вопросы