Kompilieren von kiss-ftpd (Rust-Sprachprogramm) für android set-top box
Die busybox kommt mit einem unordentlichen ftp-Code, also werde ich einen kiss-ftpd kompilieren, um ihn auf der Set-Top-Box zu verwenden.
Erstens rustup target add aarch64-linux-android
Dann installieren Sie das NDK für Android, ich habe das mit Android Studio gemacht, Screenshot unten.
Natürlich können Sie das NDK auch direkt herunterladen und entpacken.
Im Jahr 2021 ist die höchste von Rust unterstützte Version des NDK 22.1.7171670, also verwenden Sie diese zuerst.
Das Kompilierungsskript schließlich lautet wie folgt.
#!/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