前言
本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码。
下文中的”NDK”若无特殊说明均指”Android NDK”。
下文中”$NDK”表示的是NDK的根目录。
步骤
1.下载并安装Android NDK
下载并安装Android NDK的过程在这里不做介绍。
2.下载qemu
3.设置NDK工具的环境变量
4.编译依赖库
glib
编译可在Android上运行的glib库
编译参考资料:编译可在Android上运行的glib库
5.创建pkg-config的软链接
ln命令中的源路径是pkg-config工具的源路径。
如果不创建这个软链接,当执行configure脚本时会报下面的错误:
6.修改configure
添加arm的PIE支持
找到下面的代码:
将”i386-Linux|x86_64-Linux|x32-Linux|i386-OpenBSD|x86_64-OpenBSD”更改为”i386-Linux|x86_64-Linux|x32-Linux|i386-OpenBSD|x86_64-OpenBSD|arm-Linux”。
如果不这么做的后果,使用”readelf -S qemu-arm”查看编译出来的qemu-arm可执行文件的段,可以发现所有在运行时可加载段的地址均以0x60000000为基址。
在configure中有这么一段代码:
如果