编译libcurl静态库(.a文件) 在android中使用(armeabi、x86、arm64-v8a、x86_64等)

首先 下载好libcurl源码项目,进入该项目根目录,创建一个文件,如android_build.sh(linux脚本),插入如下代码:

#!/bin/bash

LOCAL_NDK_HOME=/home/xxx/soft/android/android-sdk/android-ndk-r10e/android-ndk-r10e/

set_env_aarch64(){
export SYSROOT="${LOCAL_NDK_HOME}platforms/android-21/arch-arm64"
export LDFLAGS="-L${SYSROOT}/usr/lib"
export CPPFLAGS="-I${SYSROOT}/usr/include"
export CC="${LOCAL_NDK_HOME}toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86/bin/aarch64-linux-android-gcc --sysroot=$SYSROOT"
}
set_env_arm(){
export SYSROOT="${LOCAL_NDK_HOME}platforms/android-21/arch-arm"
export LDFLAGS="-L${SYSROOT}/usr/lib"
export CPPFLAGS="-I${SYSROOT}/usr/include"
export CC="${LOCAL_NDK_HOME}toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT"
}
set_env_x86(){
export SYSROOT="${LOCAL_NDK_HOME}platforms/android-21/arch-x86"
export LDFLAGS=-"L${SYSROOT}/usr/lib"
export CPPFLAGS="-I${SYSROOT}/usr/include"
export CC="${LOCAL_NDK_HOME}toolchains/x86-4.9/prebuilt/linux-x86/bin/i686-linux-android-gcc --sysroot=$SYSROOT"
}
set_env_x86_64(){
export SYSROOT="${LOCAL_NDK_HOME}platforms/android-21/arch-x86_64"
export LDFLAGS="-L${SYSROOT}/usr/lib"
export CPPFLAGS="-I${SYSROOT}/usr/include"
export CC="${LOCAL_NDK_HOME}toolchains/x86_64-4.9/prebuilt/linux-x86/bin/x86_64-linux-android-gcc --sysroot=$SYSROOT"
}

#make clean
if test $1 -eq 1 ;then 
set_env_arm
./configure --host=arm-linux-androideabi \
--without-ssl \
--disable-ftp \
--disable-gopher \
--disable-file \
--disable-imap \
--disable-ldap \
--disable-ldaps \
--disable-pop3 \
--disable-proxy \
--disable-rtsp \
--disable-smtp \
--disable-telnet \
--disable-tftp \
--without-gnutls \
--without-libidn \
--without-librtmp \
--disable-dict
make
elif test $1 -eq 2 ;then
set_env_aarch64
./configure --host=aarch64-linux-androideabi \
--without-ssl \
--disable-ftp \
--disable-gopher \
--disable-file \
--disable-imap \
--disable-ldap \
--disable-ldaps \
--disable-pop3 \
--disable-proxy \
--disable-rtsp \
--disable-smtp \
--disable-telnet \
--disable-tftp \
--without-gnutls \
--without-libidn \
--without-librtmp \
--disable-dict
make
elif test $1 -eq 3 ;then
set_env_x86
./configure --host=x86-linux-androideabi \
--without-ssl \
--disable-ftp \
--disable-gopher \
--disable-file \
--disable-imap \
--disable-ldap \
--disable-ldaps \
--disable-pop3 \
--disable-proxy \
--disable-rtsp \
--disable-smtp \
--disable-telnet \
--disable-tftp \
--without-gnutls \
--without-libidn \
--without-librtmp \
--disable-dict
make
else
set_env_x86_64
./configure --host=x86_64-linux-androideabi \
--without-ssl \
--disable-ftp \
--disable-gopher \
--disable-file \
--disable-imap \
--disable-ldap \
--disable-ldaps \
--disable-pop3 \
--disable-proxy \
--disable-rtsp \
--disable-smtp \
--disable-telnet \
--disable-tftp \
--without-gnutls \
--without-libidn \
--without-librtmp \
--disable-dict
make
exit
fi

执行 android_build.sh 1 就会生成amreabi架构的libcurl.a文件,文件位于 lib/.lib/目录里,拷出来即可使用(该目录为隐藏目录,所以看不见)

执行android_build.sh 2就会生成arm64-v8a 架构的libcurl.a文件....

其他架构类同.............

 

这里有我已经编译好的,点击下载即可 https://download.csdn.net/download/ab6326795/10753780

你可能感兴趣的:(android开发)