返回> 网站首页 

安卓下使用ndk编译curl、openssl、iconv 之 curl

yoours2021-01-28 13:04:39 阅读 2724

简介一边听听音乐,一边写写文章。

一、安装依赖项

    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


微信小程序扫码登陆

文章评论

2724人参与,0条评论