问题标签 [winelib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
695 浏览

c - 如何包装要在 Wine 中使用的 Linux 库?我不断收到 BAD_IMAGE_FORMAT

我有一个仅限 Windows 的游戏,可以通过插件和我想使用的 Linux 库进行扩展。该应用程序(Unity 游戏)在 Wine/Proton 下运行良好。我发现 Winelib 可以做到这一点,并且我遵循了用户指南,特别是第 5 节,其中提到了我的确切用例。

经过一些尝试(比如从酿酒师中删除 --single-target arg),我到了 Proton 调试日志一直显示 c000007b 似乎是 STATUS_BAD_IMAGE_FORMAT 的地步。

请注意,我重命名了 Linux 库(并与之链接),以避免它与我的包装器之间的潜在冲突。

我只有一个 64 位版本的库,它是使用 cdecl 调用约定从 C# 代码调用的。这是我迄今为止尝试过的(以及这些的组合):

  • 添加了一个包含内容的 .spec 文件(首先没有 -arch 并且具有不同的序数):
  • 添加了库的头文件和一个 .c 文件:
  • winemaker --nosource-fix --dll --nomfc -I. -L. -llinux_library .那时用过的酿酒师make
  • 复制整个游戏中的 .dll.so 文件
  • 将 .dll.so 文件复制到 steamapps/common/Proton 5.0/dist/lib64/wine/ 并将本机库复制到更高级别 (lib64/) 并删除其他库
  • 还尝试复制到 lib/ 而不是 lib64/
  • 为文件添加了 dll 覆盖并将其设置为内置
  • 从 makefile 中删除了引用的 DLL(odbc32、ole32、oleaut32、winspool、odbccp32)和库(uuid)
  • 添加--mno-cygwin到编译器标志
  • 添加-m64-fPIC到编译器/链接器标志(基于Wine 规范文件
  • 我也尝试过制作一个 .def 文件并使用它
  • 再次使用 winemaker 并--nomsvcrt添加并运行参数make(头文件包括 string.h)

从质子日志(+模块,其他人没有为我提供更多信息):

使用和不使用 .dll 并以 lib 开头(library_name.dll、liblibrary_name 和 liblibrary_name.dll)重复相同的操作。

除了该错误代码之外,我无法获得更多关于究竟出了什么问题的日志。

在 C# 端(由 Unity 在 Proton 中运行)它会导致 DllNotFoundException。

Wine 版本 (winebuild, winegcc): 5.9 (staging) - gcc 9.0.1

质子版本:5.0 - wine-5.0-603-g068dee4

0 投票
1 回答
24 浏览

windows-10 - 是否可以使用 VM 加速程序?

我正在尝试从游戏中收集镜头。有没有可能让它以两倍的速度播放?

从某种意义上说,如果我运行一个小时,我想捕捉多个小时的游戏时间。

0 投票
1 回答
915 浏览

ruby - 面纱安装卡在酒上

我正在尝试通过以下方式安装面纱框架

但是当wine启动时安装卡住了。我要给你看一些代码

E: 错误,pkgProblemResolver::Resolve 生成​​的中断,这可能是由持有的包引起的。[错误] 安装 wine 失败 (2): 0

[*] [ALERT]:在 /var/lib/veil/wine 检测到现有的 Veil Wine 环境

[*] 正在删除现有的 Veil Wine 环境...

[*] 在 /var/lib/veil/wine 中创建新的 Veil Wine 环境

[*] 正在初始化 Veil 的 Wine 环境...
[错误] 无法安装 (Wine) Python 3.4.4... 退出代码:137

[*] 安装 (Wine) Python 依赖项...

[*] 安装 (Wine) Python 的 pywin32-220.win32-py3.4.exe...


[错误] pywin32-220.win32-py3.4.exe 安装失败... 退出码:123

[*] 安装 (Wine) Python 的 pycrypto-2.6.1.win32-py3.4.exe...


**[错误] 无法安装 pycrypto-2.6.1.win32-py3.4.exe... 退出代码:123**

[*] 安装 (OS) Python 的 PyInstaller (通过 TAR)

wine: 找不到 '/var/lib/veil/wine/drive_c/Python34/python.exe' 它看起来好像没有 wine32,你应该安装它。请以 root 身份执行“apt-get install wine32” wine: 找不到 '/var/lib/veil/wine/drive_c/Python34/python.exe'

[*] 完成(Wine + OS)Python 依赖安装

[*] 初始化 (Wine) Ruby 安装...

[*] 安装(Wine)Ruby 和依赖项

好像没有 wine32,你应该安装它。以root身份,请执行“apt-get install wine32”,好像没有wine32,你应该安装它。请以 root 身份执行“apt-get install wine32”
[错误] 无法安装 (Wine) Ruby.exe... 退出代码:123

[*] 安装(Wine)Ruby OCRA gem...

好像没有 wine32,你应该安装它。请以root身份执行“apt-get install wine32”


[错误] 无法运行 (wine) Ruby OCRA.. 退出代码:49

[*] 提取 (Wine) Ruby 依赖项...

[*] 安装 (Wine) AutoIT

[*] 下一个 -> 下一个 -> 下一个 -> 完成!...如果提示则覆盖(使用默认值)

好像没有 wine32,你应该安装它。以root身份,请执行“apt-get install wine32”,好像没有wine32,你应该安装它。请以 root 身份执行 "apt-get install wine32" 002b:err:module:__wine_process_init L"Z:\var\lib\veil\setup-dependencies\autoit-v3-setup.exe" 此系统不支持
[错误]无法运行(葡萄酒)AutoIT.. 退出代码:123

[*] 完成 AutoIT 安装

[*] 更新 Veil 配置...

[*] 完成面纱配置...

[*] 完成环境检查

[错误] 安装以下内容时出现问题:

安装wine(2)失败:0
安装失败(Wine)Python 3.4.4... 退出代码:137
安装pywin32-220.win32-py3.4.exe 失败...退出代码:123
安装失败pycrypto-2.6.1.win32-py3.4.exe ...退出代码:123
无法安装(Wine)Ruby.exe ...退出代码:123
无法运行(Wine)Ruby OCRA ..退出代码:49
无法运行(葡萄酒)AutoIT.. 退出代码:123

[I] 如果运行 Veil 有任何错误,请运行:'./Veil.py --setup' 并选择 nuke the wine 文件夹选项

[我] 完成了!

我应该在外部安装这些错误包吗?任何建议和解决方案