你的位置:首页 > 软件开发 > 操作系统 > 编译可在Android上运行的qemu user mode

编译可在Android上运行的qemu user mode

发布时间:2016-07-20 17:00:07
前言本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码。下文中的”NDK”若无特殊说明均指”Android NDK”。下文中&rdq ...

编译可在Android上运行的qemu user mode

前言

本文在Ubuntu 64位系统上对qemu项目进行交叉编译,并且只编译与qemu user mode有关的代码。

下文中的”NDK”若无特殊说明均指”Android NDK”。

下文中”$NDK”表示的是NDK的根目录。

 

步骤

 

命令行解析

configure脚本会在终端输出一些关键的信息,如:用什么编译器,flags等。

 

PKG_CONFIG_PATH

上面命令中的PKG_CONFIG_PATH="$SYSROOT/usr/lib/pkgconfig"是必要的,如果不设置这个宏,configure脚本输出”CFLAGS”的内容见下:

编译可在Android上运行的qemu user mode

 

关注”-I”后的路径,首先说一下这个路径是怎么来的,configure脚本中有下面的代码:

编译可在Android上运行的qemu user mode

 

“glib_cflags=$pkg_config --cflags $i“语句会获得glib的包含目录,看这篇文章的人如果电脑上安装有glib2.0可以通过这个命令进行查看输出内容:pkg-config –cflags glib-2.0。然而这个路径并不是我想要的,因为我现在是交叉编译,目标是ARM,所以我在这里将一个新的pkgconfig目录路径设置到PKG_CONFIG_PATH宏,输入下面的命令查看输出内容:

编译可在Android上运行的qemu user mode

 

输出内容:

编译可在Android上运行的qemu user mode

 

会发现此时”-I”后的路径有了改变。

注意:pkgconfig是一个目录,在这个目录中包含了步骤5中安装的依赖库的信息。

 

–target-list –cpu

–target-list arm-linux-user 意味着编译出来的qemu程序用于user mode,可以执行arm指令,并且这个arm指令的可执行程序的执行环境基于linux系统。 

修复办法

改为

解决办法 :在configure中找到下面的代码:

将这些代码注释掉:


原标题:编译可在Android上运行的qemu user mode

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录