ubuntu系统上使用Mingw编译Qemu最新版

本文详细介绍了如何在Ubuntu系统中使用Mingw编译QEMU的最新版本,包括安装编译器、添加第三方PPA获取mingw相关软件包、安装依赖库、获取QEMU源代码以及编译过程。通过这些步骤,可以在Ubuntu上成功编译出适用于Windows的QEMU程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译概述

当使用某种操作系统(windows、linux或Mac os X)时,我们不仅可以编译可在该系统运行的程序,也可以编译运行去其他平台的程序(如在linux系统上编译运行于windows、iOS、Android等系统的程序),后者就是所谓的交叉编译(cross-compile)技术。

一般来说,编译一个程序首先需要提供如下三类资源
1). 编译器
2). 目标程序依赖的库或头文件
3). 目标程序源码

目前最广泛使用的编译器就算gcc了,gcc是一个支持多种目标系统的跨平台编译器家族,包含一组编译器。可编译windows程序的gcc被称为MingW。

在ubuntu上交叉编译windows版qemu

1.安装编译器

ubuntu官方仓库虽然提供了mingw32等软件包但是却没有提供重要的软件包如mingw32-zlib,根据参考文献[2],编译qemu还需要诸如mingw版的zlib、glib2等,而ubuntu官方仓库里没有提供相应软件包,不过幸运的是在ppa上找到了第三方提供的mingw相关软件包,见参考文献[3]。命令如下。

sudo add-apt-repository ppa:brcha/mingw
sudo apt-get update
sudo apt-get install dh-mingw-w64 gcc-mingw-w64 g++-mingw-w64 g++-mingw-w64-i686 g++-mingw-w64-x86-64 gcc-mingw-w64-i686 gcc-mingw-w64-x86-64   binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 mingw32-pkg-config

2. 安装依赖库

sudo apt-get install mingw32-zlib mingw32-glib2

3. 获取qemu源代码

git clone git@github.com:qemu/qemu.git (如果没有注册github,则可以使用git clone https://github.com/qemu/qemu.git 命令下载代码)
cd qemu
git submodule update --init pixman
git submodule update --init dtc

4.  编译

./configure --cross-prefix=i686-w64-mingw32-
make -j10

不出意外的话,很快就能编译完成。可执行find . -name "*.exe"查找所有编译出来的qemu可执行程序。将编译出来的qemu-system-arm.exe拷贝到windows系统上运行会弹出对话框提示缺少某dll文件,可以从find /usr/ -name "*.dll" 查找dll文件,将依赖的所有dll文件复制到qemu-system-arm.exe相同目录下后,qemu就可以运行了。

参考:

[1] http://wiki.qemu.org/Hosts/W32
[2] http://lists.gnu.org/archive/html/qemu-discuss/2014-10/msg00031.html
[3] https://launchpad.net/~brcha/+archive/ubuntu/mingw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值