winqemu代码的使用

快乐虾

http://blog.csdn.net/lights_joy/

[email protected]

本文适用于

WINQEMU-0.10.2

VS2008

欢迎转载,但请保留作者信息

qemu是一个不错的开源虚拟机软件,最近刚好需要使用它,发现原来已经有人将之移植到了vs2008下,项目主页在http://sf.net/projects/winqemu/,作者的博客在http://blog.csdn.net/celestialwy

先在项目主页下了其提供了0.10.2版本的代码,解压后直接编译,错误不少:

------ 已启动生成: 项目: WinQemu, 配置: Debug Win32 ------

正在编译...

cris-dis.c

f:\projects\winqemu v0.10.2\qemu\cris-dis.c(25) : fatal error C1083: 无法打开包括文件:target-cris/opcode-cris.h: No such file or directory

keymaps.c

f:\projects\winqemu v0.10.2\qemu\sdl_keysym.h(13) : fatal error C1083: 无法打开包括文件:SDL\SDL_keysym.h: No such file or directory

savevm.c

f:\projects\winqemu v0.10.2\qemu\savevm.c(56) : fatal error C1083: 无法打开包括文件:..\pxwc\src\pxwc.h: No such file or directory

sdl.c

f:\projects\winqemu v0.10.2\qemu\sdl.c(40) : fatal error C1083: 无法打开包括文件:SDL.h: No such file or directory

vnc.c

f:\projects\winqemu v0.10.2\qemu\sdl_keysym.h(13) : fatal error C1083: 无法打开包括文件:SDL\SDL_keysym.h: No such file or directory

dsoundaudio.c

f:\projects\winqemu v0.10.2\qemu\audio\dsoundaudio.c(39) : fatal error C1083: 无法打开包括文件:dsound.h: No such file or directory

sdlaudio.c

f:\projects\winqemu v0.10.2\qemu\audio\sdlaudio.c(25) : fatal error C1083: 无法打开包括文件:SDL.h: No such file or directory

正在生成代码...

生成日志保存在“file://f:\projects\WinQemu v0.10.2\Debug\BuildLog.htm

WinQemu - 7 个错误,个警告

都是包含文件的问题,估计应该是路径的问题。

第一个无法包含的是target-cris/opcode-cris.h,从cris-dis.c的文件名看这个文件应该是用于cris平台的模拟,而我只需要i386的模拟,直接从工程中移除cris-dis.c文件。

第二个无法包含的是SDL\SDL_keysym.h,这是sdl库的头文件,可以在网上下sdl-1.2.13软件包,并将它的include目录放到winqemu的头文件目录列表中,当然,这里

#include <SDL\SDL_keysym.h>

直接改为

#include <SDL_keysym.h>

修改后造成的问题是winqemu提供的sdl_keysym.hlibsdl提供的sdl_keysym.h重名,为此直接将winqemu提供的sdl_keysym.h重命名为winqemu_sdl_keysym.h。相应的在代码中查找sdl_keysym.h,将之改为winqemu_sdl_keysym.h,只有两个文件需要修改:

F:\projects\WinQemu v0.10.2\qemu\keymaps.c(37):#include "sdl_keysym.h"

F:\projects\WinQemu v0.10.2\qemu\sdl.c(122):#include "sdl_keysym.h"

经过修改,还有两个错误:

------ 已启动生成: 项目: WinQemu, 配置: Debug Win32 ------

正在编译...

savevm.c

f:\projects\winqemu v0.10.2\qemu\savevm.c(56) : fatal error C1083: 无法打开包括文件:..\pxwc\src\pxwc.h: No such file or directory

dsoundaudio.c

f:\projects\winqemu v0.10.2\qemu\audio\dsoundaudio.c(39) : fatal error C1083: 无法打开包括文件:dsound.h: No such file or directory

正在生成代码...

生成日志保存在“file://f:\projects\WinQemu v0.10.2\Debug\BuildLog.htm

WinQemu - 2 个错误,个警告

pxwc目录下并没有src子目录,只有一个inc目录,为此将

#include "..\pxwc\src\pxwc.h"

修改为:

#include "..\pxwc\inc\pxwc.h"

由此引入一个新错误:

f:\projects\winqemu v0.10.2\pxwc\inc\pxwc.h(125) : error C2381: abort: 重定义;__declspec(noreturn) 不同

e:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(373) : 参见“abort”的声明

直接将pxwc.habort的定义注释掉。

最后一个dsound.h则是directx的头文件,需要安装directx sdk,再将其头文件目录和lib文件目录添加进来就OK了。

qemu原始文件中将*bios.bin之类的文件和linux-0.2.img映像文件复制到可执行文件目录下,运行:

Winqemutest –had linux-0.2.img

提示错误:

Could not load PC BIOS ‘c/program files/qemu/bios.bin’

在代码中查找c/program files/qemu/,发现有这样的定义:

F:\projects\WinQemu v0.10.2\qemu\config-host.h(2):#define CONFIG_QEMU_SHAREDIR "/c/Program Files/Qemu"

直接将这个目录改为:

#define CONFIG_QEMU_SHAREDIR "."

再编译运行,一切OK

你可能感兴趣的:(C++,c,linux,C#,F#)