从 Ubuntu 交叉编译 QEMU 到 Windows 10

从 Ubuntu 交叉编译 QEMU 到 Windows 10

几天来,我一直在尝试为 Windows 10 x64 交叉编译 QEMU。我对 minwg 一点也不熟悉。我读了很多页面,但大多数时候它似乎太旧了,或者不适合使用这种方法。我必须使用补丁交叉编译 QEMU,然后我必须按照说明进行操作。

我为 Ubuntu 进行了编译,这很容易,但对于 Windows 10 x64,我没有可执行文件,我可能错过了一些东西。

我认为我的问题与“前缀”有关,但我不确定。我这样说是因为为 Windows 10 编译的人为 Debian 写了这些说明。

targets="i686-w64-mingw32 x86_64-w64-mingw32"

for target in $targets; do
  echo Building $target...
  mingw=/usr/$target/sys-root/mingw
  mkdir -p /qemu/bin/ndebug/$target
  cd /qemu/bin/ndebug/$target
  rm -r *
  ../../../configure --cross-prefix=$target-  --disable-guest-agent-msi --disable-werror --extra-cflags="-I $mingw/include" --extra-ldflags="-L $mingw/lib" && make
done

就我而言,我对“--cross-prefix”部分的这条指令有疑问,因为我的“/usr/”文件夹中有这个

截屏

我已经在论坛上询问过与我使用相同语言的人,但没有人可以帮助我,至少对于 Ubuntu 来说是这样。

我的环境:

sudo apt install mingw-w64 
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev
sudo apt-get install build-essential
sudo apt-get install git

我试过了,但我没有 exe 文件

../../../configure --host=i686-w64-mingw32 --enable-debug
../../../configure --host=x86_64-w64-mingw32 --enable-debug

我尝试过但收到错误 截屏

也许我没有针对 Windows 10 进行编译的部分。


编辑:在团队的帮助下我找到了部分解决方案:

我一直只使用 MSYS2 mingw 64 进行构建

PACMAN -S mingw-w64-x86_64-meson mingw-w64-x86_64-ninja mingw-w64-x86_64-python mingw-w64-x86_64-python-sphinx mingw-w64-x86_64-python-sphinx_rtd_theme mingw-w64-x86_64-autotools mingw-w64-x86_64-cc 
Pacman -S mingw-w64-x86_64-capstone mingw-w64-x86_64-curl mingw-w64-x86_64-cyrus-sasl mingw-w64-x86_64-glib2 mingw-w64-x86_64-gnutls mingw-w64-x86_64-gtk3 mingw-w64-x86_64-libjpeg mingw-w64-x86_64-libnfs mingw-w64-x86_64-libpng  mingw-w64-x86_64-libslirp mingw-w64-x86_64-libssh mingw-w64-x86_64-libssp mingw-w64-x86_64-libtasn1 mingw-w64-x86_64-libusb mingw-w64-x86_64-libxml2 mingw-w64-x86_64-lzo2 mingw-w64-x86_64-nettle mingw-w64-x86_64-pixman mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-spice mingw-w64-x86_64-snappy mingw-w64-x86_64-usbredir mingw-w64-x86_64-zstd 

要获得所有软件包,现在您可以按照其 wiki 页面上的说明进行编译,无需运行 mingw,继续使用 msys2 mingw x64

完成后,对于不熟悉 MSYS2 的人,你可以使用 ./ 运行你的 exe

您想从资源管理器启动它们。

  • 建立特殊文件夹
  • 复制 exe 到此文件夹
  • 搜索 /MSYS2/mingw64/bin (根据您的安装文件夹)
  • 将所有 dll 复制到您的特殊文件夹(步骤 1)
  • 将 pc-bios 文件夹从 MSYS2/home//<QEMU/build 的克隆路径> 复制到您的特殊文件夹。

就这样。

也许还有更多的事情可以做来改善,但目前我还不知道更多。

相关内容