我目前在安装 wine 时遇到的问题是它没有找到启动游戏的 DLL,他说:
0100:err:module:import_dll Library D3DCOMPILER_43.dll (which is needed by L"B:\\Games\\Game.exe") not found
但我知道 DLL 在 中wineprefix
,唯一的问题是 DLL 都是小写的,如果我将 mixcase 名称符号链接到小写名称,它似乎可以工作。奇怪的是,在知道这是一个区分大小写的问题之前,我只是重新启动了我的系统几次,有时它可以工作并且区分大小写不是问题,有时它不会并再次说他可以'找不到DLL。而且它并不总是这样,但我不知道从什么时候开始像这样(但可能是因为我确实因为一个错误再次设置了我的系统)
我现在确实设置了一个文件系统,它在 linux 内核版本 5.2 中引入了不区分大小写的文件系统,但我想知道您是否可以以正常方式修复此问题。
我不是葡萄酒专家,所以不确定这些问题的“正常”方式是什么。但是“传统”方法是只创建一个链接(符号或硬链接)到具有不同名称的文件。
绝对不是一个理想的解决方案,但作为一种快速而肮脏的解决方案,它通常可以工作。
Wine在打开文件(包括 DLL)时不区分大小写。
有 99.99% 的信心,我可以说你没有安装这个库,或者它不是 Wine 期望找到它的地方。
请使用
winetricks
它来启用它 - 它通常可以完美运行。AFAIK Ubuntu 及其衍生产品附带此软件包,但我仍然强烈建议直接从 GIT 下载它:https ://github.com/Winetricks/winetricksWine 从来不需要这个功能,它使用自己的文件打开例程来打开文件。您正在尝试解决与 Wine 无关的问题。
清除您的 wineprefix (
$HOME/.wine
) 或创建一个新的 (WINEPREFIX="$HOME/.wine123" wine app.exe
)。我相信问题出在你这边。当您不断弄乱默认的 wine 前缀时,有时事情会出错 - 就此而言,建议为单独的应用程序设置单独的前缀,以消除任何可能的问题。在将船从 Windows 切换到 Linux 以进行游戏时,我与 Windows 共享的 NTFS 驱动器遇到了这个问题。
proton 的 FAQ 提到了 NTFS 的读取问题。
将未启动的游戏移动到 ext4 分区后,问题就消失了。
(测试在 NTFS 上剩下一个游戏,在 ext4 上剩下一个游戏。他们都有这个问题,取决于重启。我在 NTFS 上重新启动和测试游戏时重现了这个问题。当该游戏没有启动时,我在 ext4 上启动了游戏。它在发生问题的两次重新启动中启动了 6 次尝试中的每一次的 100%。再次重新启动后,我在 NTFS 驱动器上遇到了游戏问题。将该游戏移动到 ext4 后它启动了,即使不需要重新启动)
常见问题解答提出了一个稍微不同的修复方法
lowntfs
,我不喜欢使用它。