Hangover

Linux ARM64 的 Windows 兼容层
授权协议 LGPL 2-1
开发语言 C/C++
所属分类 应用工具、 操作系统工具
软件类型 开源软件
地区 不详
投 递 者 松元明
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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
  • E - Hangover Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld & %llu Submit Status Description How far can you make a stack of cards overhang a table? If you have one card, you can create a

  • 全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com -------------------------------------------------------------------------     打发时间顺手A的水题= = 没啥好说的。。。 算是增强一下做难题前的信心O(∩_∩)O     /* Author:

  • Hangover 时间限制:1000 ms  |           内存限制:65535 KB 难度:1 描述 How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're a

  • Description How far can you make a stack of cards overhang a table? If you have one card, you can create a maximum overhang of half a card length. (We're assuming that the cards must be perpendicular

  • http://acm.hdu.edu.cn/showproblem.php?pid=1056 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<bitset> using namespace std; int main() { double su

 相关资料
  • 我已经在AWS弹性容器服务(ECS)中创建了一个标准Windows群集,并试图将ASP.NET docker映像(Microsoft/ASPNET:4.7.1-WindowsServerCore-1709)部署到该群集,但出现以下错误 状态原因CannotPullContainerError:基于Windows版本10.0.16299的映像与10.0.14393主机不兼容 有人能建议我可以部署什么

  • Django 的目的,是要与多个不同的 Python 版本兼容。

  • 本章提供了有关 版本控制 章节中提供的破坏性和非破坏性修改列表的详细说明。 什么算是一个破坏性(不兼容)的变化并没有明确的定义。本指南应该被视为指示性的,而不是每一种可能变化的全面清单。 这里列出的规则只涉及客户端兼容性。预期API生产者明白在部署方面的要求,包括实现细节的变化。 一般目的是,服务端更新到一个新的minor版本或patch版本不该破坏客户端。可预期的破坏类型有: 源代码兼容性:针对

  • 语言补丁 Array.isArray Object.assign JSON.stringify console-polyfill Object.keys Object.is Array.prototype.forEach Function.prototype.bind 或者直接使用https://polyfill.io/ 提供的动态补丁方案 <script src="https://cdn.pol

  • Markdown 语法的目标是:成为一种适用于网络的书写语言。 Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来, HTML 已经很容易写了。Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式

  • 你可以直接在 Markdown 文件里写 Vue 代码,它将被执行。我们可以用它写一些 Vue 的 Demo 或者示例代码。 基础用法 在 index.html 里引入 Vue。 <script src="//cdn.jsdelivr.net/npm/vue"></script> <script src="//cdn.jsdelivr.net/npm/docsify"></script> <!-

  • 问题内容: 我的页面宽50/50。左半部分具有六个div的行。条件: 6个正方形必须始终保持正方形。 前5个正方形应在右边留有边距/填充以进行分隔。 所有六个正方形必须保持同一行。如果我可以使它正常工作,那么我可以对较小的视口中的响应度进行必要的调整。 跨浏览器兼容最新版本的chrome和firefox。 L1 L2 L3 L4 L5 L6 问题答案: The main trick here is

  • 我正在Windows 7上运行Visual Studio Express 2012。几个月来,我一直在运行它,没有出现任何问题。 上周五,当我关闭电脑时,安装了许多Windows更新。今天早上,当我启动并打开VS2012解决方案时,我收到以下错误消息: … 有一个< code >运行程序按钮,当我单击它时,解决方案会正常打开。我没有对我的Windows配置做任何更改。每次打开解决方案时都会出现这种