Скомпилируйте QEMU под Windows 10 (64-разрядная версия) для Windows 10 (64-разрядная версия) - PullRequest
0 голосов
/ 31 октября 2018

Мне удалось скомпилировать QEMU (3.0.50) под Windows 10 (64-разрядная версия) (в основном следуя этим инструкциям ) с помощью следующих команд:

./configure --enable-gtk --enable-sdl
make

Однако при запуске qemu-system-x86_64.exe в консоли ничего не происходит. Я ожидал, что появится окно. Вскоре после запуска exe, я получаю ответ. Ничего не распечатано на консоли. Нет необходимой DLL отсутствует. В чем может быть проблема?

1 Ответ

0 голосов
/ 01 ноября 2018

Наконец мне удалось скомпилировать и запустить QEMU под Windows 10 Home 64-bit. Есть несколько подводных камней:

  1. Из-за ошибки компилятора в mingw (см. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86832 и https://www.mail-archive.com/qemu-devel@nongnu.org/msg557409.html), вам необходимо настроить QEMU с --disable-stack-protector и (одно решение) добавить функцию __stack_chk_fail в исходный файл.
  2. Сконфигурировать QEMU с помощью --disable-werror.
  3. Удалить проект Capstone из make-файла.

Вот полное пошаговое руководство по компиляции qemu-system-x86_64.exe:

Дата: 2018-10-31

ОС: Microsoft Windows 10 Home, 64-разрядная

Руководство основано на: 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
  • Запустите 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
  • Получить источники QEMU:
    • git clone git: //git.qemu-project.org/qemu.git
    • CD QEMU
    • Обновление подмодуля git --init ui / keycodemapdb
    • Обновление подмодуля git --init capstone
    • Обновление подмодуля git --init dtc
  • Вставить void __stack_chk_fail (void); void __stack_chk_fail (void) { } в qemu \ util \ oslib-win32.c например в строке 44
  • Закомментируйте (#) Capstone (строка 508) в qemu \ Makefile
  • Сборка QEMU:
    • . / Configure --enable-gtk --enable-sdl --target-list = x86_64-softmmu --disable-werror --disable-stack-protector
    • сделать
  • Запустить в qemu / x86_64-softmmu ./qemu-system-x86_64 -L ./../pc-bios
  • Необязательно (для повышения производительности): установите HAXM в соответствии с данным руководством: https://www.qemu.org/2017/11/22/haxm-usage-windows/ и запустите QEMU с опцией -accel hax
...