我设法在Windows 10(64位)下编译QEMU(3.0.50)(基本上如下这些说明 https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2)使用这些命令:
./configure --enable-gtk --enable-sdl
make
然而,当开始时qemu-system-x86_64.exe
在控制台中,什么也没有发生。我预计会出现一个窗口。启动 exe 后不久,我就收到了提示。控制台没有打印任何内容。没有缺少必要的 DLL。可能是什么问题呢?
最后我成功地在Windows 10 Home 64位下编译并运行了QEMU。
有一些陷阱:
- 由于 mingw 中的编译器错误(请参阅https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86832 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86832 and https://www.mail-archive.com/[电子邮件受保护]/msg557409.html https://www.mail-archive.com/qemu-devel@nongnu.org/msg557409.html),您必须使用 --disable-stack-protector 配置 QEMU 并将函数 __stack_chk_fail 添加到源文件(一种解决方案)。
- 使用 --disable-werror 配置 QEMU。
- 从 makefile 中删除 Capstone 项目。
以下是编译 qemu-system-x86_64.exe 的完整分步指南:
日期:2018-10-31
操作系统:Microsoft Windows 10 家庭版 64 位
指南基于:https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2 https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2
- 下载 msys2 并将其安装到 C:\msys64:http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20180531.exe
- 启动 C:\msys64\mingw64.exe
- 更新(然后关闭窗口并重新启动 mingw64.exe): pacman -Syu
- 更新: pacman -Su
- 安装基本包: pacman -S base-devel mingw-w64-x86_64-toolchain git python
- 安装 QEMU 特定数据包: pacman -S mingw-w64-x86_64-glib2 mingw-w64-x86_64-gtk3 mingw-w64-x86_64-SDL2
- Get QEMU sources:
- git 克隆 git://git.qemu-project.org/qemu.git
- cd qemu
- git 子模块更新 --init ui/keycodemapdb
- git 子模块更新 --init capstone
- git 子模块更新 --init dtc
- 插入
无效__stack_chk_fail(无效);
无效__stack_chk_fail(无效)
{
}
到 qemu\util\oslib-win32.c
例如在第 44 行
- 在 qemu\Makefile 中注释掉 (#) Capstone(第 508 行)
- Build QEMU:
- ./configure --enable-gtk --enable-sdl --target-list=x86_64-softmmu --disable-werror --disable-stack-protector
- make
- 在 qemu/x86_64-softmmu 中运行
./qemu-system-x86_64 -L ./../pc-bios
- 可选(为了获得更好的性能):根据本指南安装 HAXM:https://www.qemu.org/2017/11/22/haxm-usage-windows/ https://www.qemu.org/2017/11/22/haxm-usage-windows/并使用选项 -accel hax 启动 QEMU
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)