我经常想在我的 Linux 机器上运行 Windows 应用程序(通常是游戏),最好的方法是通过 Windows 模拟器 Wine。问题是这很难做到。应用程序经常停顿或崩溃,而纠正问题所需的信息却很少。有人对如何查明 Windows 应用程序在 Wine 上遇到的问题(尤其是 dll 要求)有什么有用的想法吗?非常感谢,Gearoid。
答案1
你看过了吗man wine
?我看到里面有一个调试选项。
从man wine
[...]
ENVIRONMENT VARIABLES
wine makes the environment variables of the shell
from which wine is started accessible to the windows/dos processes started.
So use the appropriate syntax for your shell to enter environment variables
you need.
[...]
WINEDEBUG
Turns debugging messages on or off. The syntax of the variable
is of the form [class][+/-]channel[,[class2][+/-]channel2].
class is optional and can be one of the following:
err, warn, fixme, or trace. If class is not specified,
all debugging messages for the specified channel are turned on.
Each channel will print messages about a particular component of wine.
The following character can be either + or - to switch
the specified channel on or off respectively.
If there is no class part before it, a leading + can be omitted.
Note that spaces are not allowed anywhere in the string.
Examples:
WINEDEBUG=warn+all
will turn on all warning messages
(recommended for debugging).
WINEDEBUG=warn+dll,+heap
will turn on DLL warning messages and all heap messages.
WINEDEBUG=fixme-all,warn+cursor,+relay
will turn off all FIXME messages, turn on cursor warning
messages, and turn on all relay messages (API calls).
WINEDEBUG=relay
will turn on all relay messages.
For more control on including or excluding functions
and dlls from the relay trace look into the [Debug] section
of the wine configuration file.
For more information on debugging messages,
see the Running Wine chapter of the Wine User Guide.
[...]
答案2
Wine 的 AppDB是检查兼容性的最佳位置。检查 AppDB 中软件条目的注释部分应该会为您提供崩溃的可能原因、理由和可能的解决方案。