返回> 网站首页
安卓下使用ndk编译curl、openssl、iconv 之 iconv
yoours2021-01-28 13:01:22
简介一边听听音乐,一边写写文章。
一、安装依赖项
apt-get install make
apt-get install python
二、安装ndk
android-ndk-r21b
三、输出目录
/root/android-ndk-r21b/toolchain_arm64-v8a/sysroot/usr/local
四、复制并创建iconv.sh文件
#!/bin/sh
set -e
set -x
if [ ! -f "libiconv-1.16.tar.gz" ]; then
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
fi
if [ ! -d "libiconv-1.16" ]; then
tar zxf libiconv-1.16.tar.gz
fi
_compile() {
SURFIX=$1
TOOL=$2
ARCH_FLAGS=$3
ARCH_LINK=$4
ARCH=$5
export ANDROID_HOME=`pwd`
if [ ! -d "toolchain_${SURFIX}" ]; then
$ANDROID_HOME/build/tools/make-standalone-toolchain.sh --arch=${ARCH} --install-dir=./toolchain_${SURFIX}
fi
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 libiconv-1.16/
#autoreconf -i
./configure --prefix=$TOOLCHAIN/sysroot/usr/local \
--with-sysroot=$TOOLCHAIN/sysroot \
--host=${TOOL} \
--disable-shared
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" "" "" "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 iconv.sh
六、文件下载地址
https://download.csdn.net/download/yeah2000/14948706