winqemu代码的使用计算机等级考试

文章作者 100test 发表时间 2009:07:12 21:10:51
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  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.h和libsdl提供的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.h中abort的定义注释掉。
  最后一个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!

相关文章


小于号重载须注意的问题计算机等级考试
winqemu代码的使用计算机等级考试
用SAFEARRAY封装POST数据计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛