Android 10 Termux环境下如何安装arm-64架构Android NDK工具链?
为Android Termux安装ARM64工具链并交叉编译SFML
1. 确认NDK路径并执行工具链安装命令
首先确保$NDK环境变量正确指向你的android-ndk-r23b目录,比如NDK放在Termux的~/android-ndk-r23b路径下,先执行:
export NDK=~/android-ndk-r23b
再重新运行你之前的安装命令(格式调整更易读):
$NDK/build/tools/make_standalone_toolchain.py \ --arch arm64 \ --api 29 \ --install-dir=toolchain
该命令会将适配Android 10(API 29)的ARM64工具链安装到当前目录的toolchain文件夹中。
2. 配置工具链环境变量
安装完成后,将工具链的bin目录加入系统PATH,让Termux能识别交叉编译工具:
export PATH=$PWD/toolchain/bin:$PATH
如果想永久生效,可将这行命令添加到Termux的~/.bashrc或~/.zshrc文件末尾。
3. 交叉编译SFML源码
准备工作
先安装Termux基础编译工具:
pkg install cmake git make
克隆SFML源码并进入目录:
git clone https://github.com/SFML/SFML.git cd SFML
配置CMake编译参数
创建编译目录并进入:
mkdir build && cd build
执行CMake配置,指定ARM64目标架构与NDK路径:
cmake .. \ -DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_VERSION=29 \ -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \ -DCMAKE_ANDROID_NDK=$NDK \ -DCMAKE_ANDROID_STL_TYPE=c++_shared \ -DCMAKE_INSTALL_PREFIX=../sfml-arm64-install
c++_shared:使用共享STL库,适配Termux运行环境CMAKE_INSTALL_PREFIX:指定SFML编译后的安装路径,方便后续项目引用
编译并安装SFML
make -j$(nproc) make install
4. 编译你的SFML项目
在你的项目目录中,同样用CMake配置交叉编译环境,指定已编译好的SFML路径:
cmake .. \ -DCMAKE_SYSTEM_NAME=Android \ -DCMAKE_SYSTEM_VERSION=29 \ -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \ -DCMAKE_ANDROID_NDK=$NDK \ -DCMAKE_ANDROID_STL_TYPE=c++_shared \ -DSFML_DIR=../SFML/sfml-arm64-install/lib/cmake/SFML make -j$(nproc)
编译完成后,生成的可执行文件即可在Termux中直接运行。
注意事项
- Termux本身是ARM64环境,但仍需NDK工具链适配Android系统库,避免兼容性问题
- 若遇到依赖缺失,可通过
pkg search命令查找并安装对应依赖包
内容的提问来源于stack exchange,提问作者Nothing But Air
相关产品推荐
相关产品推荐

