交叉编译(把fio编译成Android可以执行的文件)


 交叉编译

 

把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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM