Kompilering av kiss-ftpd (program i rost) för android set-top box
busyboxen levereras med en rörig ftp-kod, så jag ska kompilera en kiss-ftpd för att använda den på set-top-boxen.
För det första rustup target add aarch64-linux-android
Installera sedan NDK för Android, jag gjorde detta med Android Studio, skärmdump nedan.
Du kan naturligtvis också ladda ner NDK direkt och packa upp den.
År 2021 är den högsta versionen av NDK som stöds av rust 22.1.7171670, så använd den först.
Slutligen är kompileringsskriptet följande.
#!/usr/bin/env bash
DIR=$(cd "$(dirname "$0")"; pwd)
set -ex
cd $DIR
export API=30
export NDK_VERSION=22.1.7171670
export TARGET=aarch64-linux-android
export os=`uname -s|awk '{ print tolower($0) }'`
export NDK=$HOME/Library/Android/sdk/ndk/$NDK_VERSION
export ANDROID_NDK_HOME=$NDK
export TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$os-x86_64
export PATH=$TOOLCHAIN/bin:$PATH
export AR=$TOOLCHAIN/bin/llvm-ar
export AS=$TOOLCHAIN/bin/$TARGET-as
export CC=$TOOLCHAIN/bin/$TARGET$API-clang
export CXX=$TOOLCHAIN/bin/$TARGET$API-clang++
export LD=$TOOLCHAIN/bin/$TARGET-ld
export RANLIB=$TOOLCHAIN/bin/$TARGET-ranlib
export STRIP=$TOOLCHAIN/bin/$TARGET-strip
CARGO_TARGET=`echo ${TARGET//-/_} | awk '{ print toupper($0) }'`
export CARGO_TARGET_${CARGO_TARGET}_LINKER=$CC
echo 'AR = '$AR
echo 'AS = '$AS
echo 'CC = '$CC
echo 'CXX = '$CXX
echo 'LD = '$LD
echo 'RANLIB = '$RANLIB
echo 'STRIP = '$STRIP
RUST_BACKTRACE=1 \
cargo +nightly build --release --target aarch64-linux-android