le portage de libcurl sur android avec le support ssl

J'essaie de port libCurl pour android avec le support SSL,
la première étape serait de port de la boucle sans le support ssl, je suppose que j'ai donc commencé à faire cela. mais je rencontre un problème.

comme je l'ai lu sur le dev web et en le Android.mk fichier, la partie la plus difficile est la configuration de la première. donc, ce que j'ai fait est :

  1. Télécharger le code Source Android (et le compiler! depuis certains des intermédiaires libs sont nécessaires)

  2. Télécharger cURL

  3. décompresser curl en vertu de l' : {android_src}/externe/curl

  4. faire le script de configuration pour le roulage en la création d'une sh de fichiers externes/curl dossier avec ce contenu.

`

export A=/home/user/Development/AOSP/2.3.3    
export CC=$A/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc 
export NDK=/home/user/Development/Tools/sdk/android/ndk
export NDKLIBS=$NDK/platforms/android-4/arch-arm/usr/include
export SYSROOT=$A/ndk/build/platforms/android-4/arch-arm 
export CPPFLAGS="-I $A/system/core/include"
export LDFLAGS="-L$A/out/target/product/generic/obj/lib/-L$A/out/target/product/generic/system/lib/-L$SYSROOT/usr/lib -Wl,--gc-sections -nostdlib -lc -lm -ldl -llog -lgcc -Wl,--no-undefined,-z,nocopyreloc -Wl,-dynamic-linker,/system/bin/linker -L$NDK/out/target/product/generic/obj/lib/" 
export CFLAGS="-fno-exceptions -Wno-multichar -mthumb -mthumb-interwork -nostdlib -lc -ldl -lm -march=armv5te -mtune=xscale -msoft-float -mandroid -fPIC -mthumb-interwork -mthumb -mlong-calls -ffunction-sections -fstack-protector  -fno-short-enums -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID -DOS_ANDROID -D__NEW__ -D__SGI_STL_INTERNAL_PAIR_H -I$SYSROOT/usr/include -I $A/system/core/include -I $NDKLIBS" 

./configure --host=arm-eabi --with-ssl=$A/external/openssl

`
Et la sortie de résumé est celui-ci :

configurer: Configuré pour construire curl/libcurl:

  curl version:     7.26.0
Host setup:       arm-unknown-eabi
Install prefix:   /usr/local
Compiler:         /home/tanco/Development/AOSP/2.3.3/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
SSL support:      no      (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls} )
SSH support:      no      (--with-libssh2)
zlib support:     enabled
krb4 support:     no      (--with-krb4*)
GSSAPI support:   no      (--with-gssapi)
SPNEGO support:   no      (--with-spnego)
TLS-SRP support:  no      (--enable-tls-srp)
resolver:         default (--enable-ares / --enable-threaded-resolver)
ipv6 support:     no      (--enable-ipv6)
IDN support:      no      (--with-libidn)
Build libcurl:    Shared=no, Static=yes
Built-in manual:  enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors:   enabled (--disable-verbose)
SSPI support:     no      (--enable-sspi)
ca cert bundle:   /etc/ssl/certs/ca-certificates.crt
ca cert path:     no
LDAP support:     no      (--enable-ldap / --with-ldap-lib / --with-lber-lib)
LDAPS support:    no      (--enable-ldaps)
RTSP support:     enabled
RTMP support:     no      (--with-librtmp)
Protocols:        DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP
SONAME bump:     yes - WARNING: this library will be built with the SONAME
number bumped due to (a detected) ABI breakage.
See lib/README.curl_off_t for details on this.

Première chose étrange qui vient à l'esprit est pourquoi SSL est pas inclus dans le fichier de configuration depuis l'éditeur de liens montre l'intermédiaire du syndicat et de la prise en charge ssl indicateur est appelé, mais après quand j'utilise le même curl_config.h fichier dans la jni projet que j'ai créé pour le construire (car il a une autonome Android.mk fichier il peut être compilé simplement en ouvrant dans la jni dossier d'un projet android, copier le fichier de configuration créé dans le PSBA source et de l'appel de ndk-build)

donc je compile et j'obtiens :

$ ndk-build
Compile thumb  : curl <= url.c
In file included from /Projects/temp/testNDK/jni/lib/url.c:32:0:
/Tools/sdk/android/ndk/platforms/android-14/arch-arm/usr/include/unistd.h: In function 'getpagesize':
/Tools/sdk/android/ndk/platforms/android-14/arch-arm/usr/include/unistd.h:171:3: warning: nested extern declaration of '__page_size' [-Wnested-externs]
/Tools/sdk/android/ndk/platforms/android-14/arch-arm/usr/include/unistd.h: In function '__getpageshift':
/Tools/sdk/android/ndk/platforms/android-14/arch-arm/usr/include/unistd.h:175:3: warning: nested extern declaration of '__page_shift' [-Wnested-externs]
/Projects/temp/testNDK/jni/lib/url.c: At top level:
/Projects/temp/testNDK/jni/lib/url.c:57:2: error: #error "We can't compile without socket() support!"
make: *** [/Projects/temp/testNDK/obj/local/armeabi/objs/curl/lib/url.o] Error 1
InformationsquelleAutor Tancho | 2012-07-04