交叉編譯
把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