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

编译概述

当使用某种操作系统(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 [email protected]: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

时间: 2024-10-24 22:33:45

ubuntu系统上使用Mingw编译Qemu最新版的相关文章

在Ubuntu系统上搭建Hadoop 2.x(2.6.2)

官方的中文版的Hadoop快速入门教程已经是很老的版本了,新版的Hadoop目录结构发生了变化,因此一些配置文件的位置也略微调整了,例如新版的hadoop中找不到快速入门中提到的conf目录,另外,网上有很多教程也是关于老版本的.本教程主要是针对Hadoop 2.X版本,在Ubuntu系统上的搭建过程.如果要对各个步骤进行深入理解,还需要参考其他资料. 英文版快速入门:http://hadoop.apache.org/docs/r2.6.2/hadoop-project-dist/hadoop-

Ubuntu系统上SVN服务器的安装和配置

Ubuntu系统上SVN的安装和配置 1.安装 #sudo apt-get install subversion 2.创建版本库 #sudo mkdir /home/svn #sudo svnadmin create /home/svn/suc 3.进入版本库修改相关配置文件 #cd /home/svn/suc/ #dir conf db format hooks locks README.txt 我们主要关心的是conf和db文件,conf文件夹下是存放主配置文件和用户.权限位置,db文件夹是

Nginx: ubuntu系统上如何判断是否安装了Nginx?

问题描述:ubuntu系统上,如何查看是否安装了Nginx? 解决方法:输入命令行:ps -ef | grep nginx master process后面就是Nginx的安装目录. 延伸:1. 如何查看Nginx版本号? 使用命令:nginx -v   //显示Nginx版本号 nginx -V  // 显示Nginx版本号,编译器版本号,配置信息 2. master process:主进程 worker process:工作进程 参考:https://zhidao.baidu.com/que

[Hadoop] 在Ubuntu系统上一步步搭建Hadoop(单机模式)

1 创建Hadoop用户组和Hadoop用户 Step1:创建Hadoop用户组: ~$ sudo addgroup hadoop Step2:创建Hadoop用户: ~$ sudo adduser -ingroup hadoop hadoop 回车后会提示输入密码,这是新建Hadoop的密码,输入两次密码敲回车即可.如下图所示: Step3:为Hadoop用户添加权限: ~$ sudo gedit /etc/sudoers 点击回车后,打开sudoers文件,在 root ALL=(ALL:A

Ubuntu系统上轻松截图的几种方法介绍

相信大家对于屏幕截图(或称抓图)应该不会陌生,在Windows平台上,我们可以使用许多第三方的专业抓图软件如SnagIt等来实现抓取屏幕图像的功能.在Ubuntu系统中,实现抓图功能的开源工具很多,用好这些工具可以让我们轻松获取任何所需的屏幕图像.本文介绍基于Ubuntu desktop 8.10(i386),GNOME集成桌面环境. 1.使用键盘快捷键抓图 在GNOME集成桌面环境下,我们可以使用键盘功能键Print Screen或Alt+Print Screen组合键来抓图,前者可以抓取整个

Ubuntu 系统下安装gcc-arm-none-eabi编译STM32工程

在使用rikirobot机器人做ROS下的导航实验是,粗心大意将底层控制板烧坏,买了个新的电路板重新开始.在编译商家各处的STM32源代码时,Ubunt下总是出现了/arm-none-eabi-gcc/bin/ld:cannot find -lstdc++的错误,这是一个链接错误,使用arm-none-eabi-gcc编译器时总是连接不到libstdc++.首先尝试使用网上给出的一种方法,原因认为是在64位系统下编译32位的工程需要把32位的库包含进来,使用如下命令 1 sudo apt-get

十分钟内在Ubuntu系统上搭建Mono开发环境(Mono软件Ubuntu系统国内镜像源、Mono国内镜像源)

Mono软件Ubuntu系统国内镜像源.Mono国内镜像源 http://download.githall.cn/repo 1.授权注册repo源 Ubuntu 18.04 (i386, amd64, armhf, arm64, ppc64el)系统请运行如下命令: sudo apt install gnupg ca-certificates sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0

Altas在Ubuntu系统上的安装部署步骤

1.下载安装: wget https://github.com/Qihoo360/Atlas/releases/download/2.2/Atlas-2.2-debian7.0-x86_64.deb dpkg   --instdir=/srv/Altas-2.2 -i Atlas-2.2-debian7.0-x86_64.deb 2.配置atlas Vi /usr/local/mysql-proxy/conf/test.cnf [mysql-proxy] #管理接口的用户名 admin-user

Hadoop 在ubuntu系统上的搭建[图解]

前言 本文介绍如何在Ubuntu Kylin操作系统上搭建Hadoop平台. 配置 1. 操作系统: Ubuntu Kylin 14.04 2. 编程语言支持: JDK 1.8 3. 通信协议支持: SSH 2. 云计算项目: Hadoop 1.2.1 第一步:安装最新版本的JDK (若已经安装过请忽略这一步) 1. 去官网下载JDK1.8并解压 (当前安装包为:jdk-8u25-linux-x64.gz) 2. 将解压后的安装包复制到 /usr/lib/jvm 目录下 (jvm目录需要自行创建