交叉编译
把fio编译成Android可以执行的文件
0.环境
Android 9
Ubuntu20.04
1. 安装Android NDK
下载Android NDK: https://developer.android.google.cn/ndk/downloads
2. 解压
unzip android-ndk-r21d-linux-x86_64.zip
3. 添加环境变量
vim /etc/profile
在文件中添加下面命令
export NDK_HOME=/home/shenhao/android-ndk-r21d export PATH=$PATH:$NDK_HOME
使文件生效
source /etc/profile
4. 检验是否安装成功
ndk_build
3. 把fio编译成Android可以执行的文件
1. 下载fio
https://git.kernel.org/pub/scm/linux/kernel/git/axboe/fio.git/
git clone https://github.com/axboe/fio.git
2. 解压
tar -xvf fio-3.17.tar.gz
3. 通过NDK编译fio
UNAME=Android CROSS_COMPILE=/home/shenhao/workSpace/android-ndk-r21e/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21- CC=/home/shenhao/workSpace/android-ndk-r21e/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang ./configure
# 思考过程
./configure --cpu=arch --cc=aarch64-linux-gnu-gcc --build-static --disable-shm ./build/tools/make-standalone-toolchain.sh --arch=arm --platform=android-21 --install-dir=/home/shenhao/workSpace/android-ndk-r21e/android-toolchain --toolchain=arm-linux-androideabi-4.9
4. 编译
make
说明:
其中UNAME
用于配置程序运行的环境,CROSS_COMPILE
以及CC
用于配置Android的工具链,
其中android21
等标志是用来区分不同的Android版本,一般来说Android是往前兼容的,使用低版本的编译出来的程序依然可以在高版本的Android运行
报错:
HOST_OS=linux HOST_EXE= HOST_ARCH=x86_64 HOST_TAG=linux-x86_64 HOST_NUM_CPUS=4 BUILD_NUM_CPUS=8 ERROR: Failed to create toolchain
解决方法
apt-get install python
参考:
https://blog.csdn.net/mysterious_9527/article/details/91360280
https://blog.csdn.net/u011649400/article/details/113759374
https://www.jianshu.com/p/3bbad4b1b099
https://blog.csdn.net/weixin_42775140/article/details/108648460
https://blog.csdn.net/aa787282301/article/details/109230094