Сборка libcurl для Android в Windows или Ubuntu - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь найти инструкции по сборке для сборки libcurl для Android в Windows или Ubuntu. Я нашел много ссылок на эту тему, но все эти датируются несколько лет назад и, похоже, не работают как таковые с последними версиями NDK.

Однако я нашел этот недавно обновленный проект gitlab: https://github.com/gcesarmza/curl-android-ios

Но попытка построить его в соответствии с инструкциями readme приводит к следующей ошибке:

.... jni /../../ openssl / bio_ssl.c: 63: 10: фатальная ошибка: файл 'opensll / crypto.h' не найден

crypto.h находится в папке opensll / crypto /. В общем, кажется, что расположение файлов заголовков во всех исходных файлах openssl неверно. Итак, как правильно решить эту проблему, какую-нибудь настройку make-файла или переменную env?

Вот полный вывод сборки:

perza@perza-Ubuntu64:~/AndroidStudioProjects/cURL/curl-android-ios/curl-compile-scripts$ ./build_Android.sh Configuring for android
no-asm          [option]   OPENSSL_NO_ASM
no-camellia     [option]   OPENSSL_NO_CAMELLIA (skip dir)
no-cast         [option]   OPENSSL_NO_CAST (skip dir)
no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
no-idea         [option]   OPENSSL_NO_IDEA (skip dir)
no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5         [krb5-flavor not specified] OPENSSL_NO_KRB5
no-libunbound   [experimental] OPENSSL_NO_LIBUNBOUND (skip dir)
no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
no-rfc3779      [default]  OPENSSL_NO_RFC3779 (skip dir)
no-sctp         [default]  OPENSSL_NO_SCTP (skip dir)
no-shared       [option]  
no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE (skip dir)
no-ssl2         [default]  OPENSSL_NO_SSL2 (skip dir)
no-store        [experimental] OPENSSL_NO_STORE (skip dir)
no-unit-test    [default]  OPENSSL_NO_UNIT_TEST (skip dir)
no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS (skip dir)
no-whirpool     [option]   OPENSSL_NO_WHIRPOOL (skip dir)
no-zlib         [default] 
no-zlib-dynamic [default] 
IsMK1MF=0
CC            =gcc
CFLAG         =-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -mandroid -I$(ANDROID_DEV)/include -B$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall
EX_LIBS       =-ldl
CPUID_OBJ     =mem_clr.o
BN_ASM        =bn_asm.o
EC_ASM        =
DES_ENC       =des_enc.o fcrypt_b.o
AES_ENC       =aes_core.o aes_cbc.o
BF_ENC        =bf_enc.o
CAST_ENC      =c_enc.o
RC4_ENC       =rc4_enc.o rc4_skey.o
RC5_ENC       =rc5_enc.o
MD5_OBJ_ASM   =
SHA1_OBJ_ASM  =
RMD160_OBJ_ASM=
CMLL_ENC      =camellia.o cmll_misc.o cmll_cbc.o
MODES_OBJ     =
ENGINES_OBJ   =
PROCESSOR     =
RANLIB        =/usr/bin/ranlib
ARFLAGS       =
PERL          =/usr/bin/perl
THIRTY_TWO_BIT mode
DES_UNROLL used
DES_INT used
BN_LLONG mode
RC4 uses uchar
RC4_CHUNK is unsigned long
BF_PTR used
sh: 1: make: not found
make: Entering directory `/home/perza/AndroidStudioProjects/cURL/curl-android-ios/curl-compile-scripts'
[arm64-v8a] Compile        : ssl <= bio_ssl.c
jni/../../openssl/ssl/bio_ssl.c:63:10: fatal error: 'openssl/crypto.h' file not found
#include <openssl/crypto.h>
         ^~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [obj/local/arm64-v8a/objs/ssl/__/__/openssl/ssl/bio_ssl.o] Error 1
make: Leaving directory `/home/perza/AndroidStudioProjects/cURL/curl-android-ios/curl-compile-scripts'
Error building the libssl and libcrypto
perza@perza-Ubuntu64:~/AndroidStudioProjects/cURL/curl-android-ios/curl-compile-scripts$

br, perza

1 Ответ

0 голосов
/ 18 июля 2018

По какой-то причине ваш automake обнаружил, что make не был на PATH довольно поздно. Обратите внимание, что исполняемый файл make доступен в комплекте NDK , поэтому вам нужно только правильно установить переменную PATH.

...