Hangover 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Hangover 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Hangover 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 LGPL 2-1
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 罗奇奇
适用人群 未知
收录时间 2023-03-10

软件简介

Hangover 可用于在 aarch64/(ppc64le)/x86_64 Wine 上运行 (x86_64)/x86_32 Windows 应用程序。

(括号内的架构暂不支持)

1)它是如何工作的

Hangover 使用 Wine 中的 WoW64 支持 + 一个模拟器来运行,例如x86_64 上的 ARM32 ,或 ARM64 上的 i386。

2)状态

虽然整体稳定性得到改善,但预计会发生崩溃。

3)如何构建

目前 Qemu 被构建为一个在 Wine 中使用的库。这是一个许可冲突,所以不会有二进制文件可供下载。这将随着其他模拟器而改变。

3.1)Qemu

要将 Qemu 构建为库,需要:

  • 构建 qemu 的依赖项(特别是 glib)
  • 大约 1GB 的磁盘空间

此处下载并解压缩 5.2.0 版

在 qemu/ 下应用此 repo 中提供的补丁:

$ patch -p1 < /path/to/your/patch

像这样构建它:

$ mkdir build
$ cd build
$ ../configure --target-list=arm-linux-user,i386-linux-user
$ make

如果编译器警告 linux-user/ioctls.h 中的某些内容,请删除相应的行并再次运行 make。

将生成的库放在 /opt(默认)中或将 HOLIB 设置为生成的库的完整路径。

3.2) Wine

要制作 Hangover Wine,您需要:

  • 构建 64 位 Wine 的依赖项
  • 用于PE交叉编译的 llvm-mingw
  • 大约 5GB 的磁盘空间

还要确保您设置了子模块:

$ git submodule update --init

在 x86-64 上:

$ mkdir -p wine/build
$ cd wine/build
$ ../configure --enable-win64 --disable-tests --with-mingw --enable-archs=i386,x86_64,arm
$ make

在 ARM64 上:

$ mkdir -p wine/build
$ cd wine/build
$ ../configure --disable-tests --with-mingw --enable-archs=i386,aarch64,arm
$ make

4)运行 

在关键部分问题解决之前,强烈建议使用“taskset -c 1”将执行限制为 1 个核心:

在 x86-64 上:

$ taskset -c 1 ./wine64 yourapplication.exe

在 ARM64 上:

$ taskset -c 1 ./wine yourapplication.exe

您可以添加以下环境变量:

  • HODLL 使用除 xtajit 或 wowarmhw 之外的其他 dll 运行应用程序。例如 HODLL=wow64cpu.dll 在 x86-64 上运行它而不进行仿真:
    xtajit.dll 用于 i386 仿真,wowarmhw.dll 用于 ARM 仿真,wow64cpu.dll 用于 x86_64 上的“本机”i386 模式
  • HOLIB 设置库的完整路径,例如 HOLIB=/path/to/libqemu-i386.so
  • QEMU_LOG 设置 Qemu 日志通道,在这里找到一些选项。

5)待办事项

  • 让更多的应用程序运行
  • 调查 CriticalSection 问题(只是时间问题?)
  • 集成除 Qemu 之外的其他模拟器,如 Box32、 FEX / hex-emu
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
2 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部