坑很多:
一、Android
下载android-ndk-r15c(18以下编译不过,报clang: error: unknown argument: '-mandroid')
二、OPENSSL
1、下载Setenv-android.sh,这是OPENSSL环境脚本。
2、编辑脚本设置以下:
ANDROID_NDK_ROOT="android-ndk-r15c"
_ANDROID_EABI="arm-linux-androideabi-4.9"
_ANDROID_ARCH=arch-arm
尾添加:
cd openssl-OpenSSL_1_0_2l
make clean
./Configure no-shared android-armv7 no-ssl2 no-ssl3 no-comp no-hw no-engine --prefix=/Users/xxx/libs/android-build/out
make depend
make all
make install
三、LIBCURL
编写新脚本:
ANDROID_NDK_ROOT="/Users/xxx/apps/android-ndk-r15c"
NDK=/Users/xxx/apps/android-ndk-r15c
SYSROOT=$NDK/platforms/android-23/arch-arm
export CC="/Users/xxx/apps/android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT"
source 脚本
./configure --host=arm-androideabi-linux --disable-shared --with-ssl=/Users/xxx/libs/android-build/out --prefix=/Users/xxx/libs/android-build/out
make时:
../../../../arm-linux-androideabi/bin/ld: error: ../lib/.libs/libcurl.a: no archive symbol table (run ranlib)
从新脚本:
ANDROID_NDK_ROOT="/Users/xxx/apps/android-ndk-r15c"
export PATH=/Users/xxx/apps/android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin:$PATH
NDK=/Users/xxx/apps/android-ndk-r15c
SYSROOT=$NDK/platforms/android-23/arch-arm
export CC="arm-linux-androideabi-gcc --sysroot=$SYSROOT"
export LD="arm-linux-androideabi-ld"
命令改为:
./configure --host=arm-linux-androideabi --disable-shared --without-zlib --with-ssl=/Users/xxx/libs/android-build/out --prefix=/Users/xxx/libs/android-build/out
坑坑多,慢慢体会.
输出如下便成功:
curl version: 7.59.0
Host setup: arm-unknown-linux-androideabi
Install prefix: /Users/xxx/libs/android-build/out
Compiler: arm-linux-androideabi-gcc --sysroot=/Users/xxx/apps/android-ndk-r15c/platforms/android-23/arch-arm
SSL support: enabled (OpenSSL)
SSH support: no (--with-libssh2)
zlib support: no (--with-zlib)
brotli support: no (--with-brotli)
GSS-API support: no (--with-gssapi)
TLS-SRP support: enabled
resolver: POSIX threaded
IPv6 support: enabled
Unix sockets support: enabled
IDN support: no (--with-{libidn2,winidn})
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: no
ca cert path: no
ca fallback: 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)
metalink support: no (--with-libmetalink)
PSL support: no (libpsl not found)
HTTP2 support: disabled (--with-nghttp2)
Protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP