返回> 网站首页
安卓下使用ndk编译curl、openssl、iconv 之 curl
yoours2021-01-28 13:04:39
简介一边听听音乐,一边写写文章。
一、安装依赖项
apt-get install make
apt-get install python
二、安装ndk
android-ndk-r21b
三、输出目录
/root/android-ndk-r21b/toolchain_arm64-v8a/sysroot/usr/local
四、复制并创建curl.sh文件
#!/bin/sh
set -e
set -x
if [ ! -f "curl-7.73.0.tar.gz" ]; then
wget https://curl.haxx.se/download/curl-7.73.0.tar.gz
fi
if [ ! -d "curl-7.73.0" ]; then
tar zxf curl-7.73.0.tar.gz
fi
_compile() {
SURFIX=$1
TOOL=$2
ARCH_FLAGS=$3
ARCH_LINK=$4
ARCH=$5
export ANDROID_NDK=`pwd`
if [ ! -d "toolchain_${SURFIX}" ]; then
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh --arch=${ARCH} --install-dir=./toolchain_${SURFIX}
fi
export ANDROID_HOME=`pwd`
export TOOLCHAIN=$ANDROID_HOME/toolchain_${SURFIX}
export PKG_CONFIG_LIBDIR=$TOOLCHAIN/lib/pkgconfig
export CROSS_SYSROOT=$TOOLCHAIN/sysroot
export PATH=$TOOLCHAIN/bin:$PATH
export CC=$TOOLCHAIN/bin/${TOOL}-gcc
export CXX=$TOOLCHAIN/bin/${TOOL}-g++
export LINK=${CXX}
export LD=$TOOLCHAIN/bin/${TOOL}-ld
export AR=$TOOLCHAIN/bin/${TOOL}-ar
export RANLIB=$TOOLCHAIN/bin/${TOOL}-ranlib
export STRIP=$TOOLCHAIN/bin/${TOOL}-strip
export ARCH_FLAGS=$ARCH_FLAGS
export ARCH_LINK=$ARCH_LINK
export CFLAGS="${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing" # -finline-limit=64"
export CXXFLAGS="${CFLAGS} -frtti -fexceptions"
export LDFLAGS="${ARCH_LINK}"
cd curl-7.73.0
#autoreconf -i
./configure --host=${TOOL} \
--prefix=$TOOLCHAIN/sysroot/usr/local \
--with-sysroot=$TOOLCHAIN/sysroot \
--with-ssl=$TOOLCHAIN/sysroot/usr/local \
--with-zlib --enable-ipv6 --enable-static --enable-threaded-resolver \
--disable-dict --disable-gopher --disable-ldap --disable-ldaps --disable-manual \
--disable-pop3 --disable-smtp --disable-imap --disable-rtsp \
--enable-shared --disable-smb --disable-telnet --disable-verbose
#--with-nghttp2=$TOOLCHAIN/sysroot/usr/local
make clean
make -j4
make install
cd ..
}
# arm
#_compile "armeabi" "arm-linux-androideabi" "-mthumb" "" "arm"
# armv7
#_compile "armeabi-v7a" "arm-linux-androideabi" "-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16" "-march=armv7-a -Wl,--fix-cortex-a8" "arm"
# arm64v8
_compile "arm64-v8a" "aarch64-linux-android" "" "-Wl,-rpath-link=/root/RAndroid/android-ndk-r21b/openssl-1.1.1h" "arm64"
# x86
#_compile "x86" "i686-linux-android" "-march=i686 -m32 -msse3 -mstackrealign -mfpmath=sse -mtune=intel" "" "x86"
# x86_64
#_compile "x86_64" "x86_64-linux-android" "-march=x86-64 -m64 -msse4.2 -mpopcnt -mtune=intel" "" "x86_64"
# mips
#_compile "mips" "mipsel-linux-android" "" "" "mips"
# mips64
#_compile "mips64" "mips64el-linux-android" "" "" "mips64"
echo "done"
五、增加运行权限,并执行
chmod a+x curl.sh
六、下载地址
https://download.csdn.net/download/yeah2000/14948706