可执行文件中的 CPU 类型错误:wine @ macOS Catalina

可执行文件中的 CPU 类型错误:wine @ macOS Catalina

我的wine执行 Windows 可执行文件时遇到一些问题:

$ wine GECacheBldr.exe
zsh: bad CPU type in executable: wine

如何解决这个问题?

PS:我的 wine 是使用 HomeBrew 安装的:

$ brew cask install wine-stable

编辑

无法执行winecfg

$ winecfg
/usr/local/bin/winecfg: line 46: /usr/local/bin/wine: Bad CPU type in executable
/usr/local/bin/winecfg: line 46: /usr/local/bin/wine: Undefined error: 0

答案1

尝试

file `which wine`

如果它说了类似这样的话Mach-O executable i386:Apple 在 Catalina 10.15 中放弃了对 32 位可执行文件的支持。

您可能想尝试wine64而不是wine

答案2

我做到了

rm /usr/local/bin/wine

然后

ln -s /usr/local/bin/wine64 /usr/local/bin/wine

因为“wine”是所有脚本首先尝试的 32 位版本,并且 OS X 显然不提供 32 位兼容层。

它基本上可以工作,但到目前为止我还不能完成我需要的一切,在执行一些与 wine 相关的命令时仍然会出错。

我尝试了另一种更成功的选择,即在WINE=/usr/local/bin/wine64 我想要运行的每个 Wine 相关命令之前添加,包括 winetricks

答案3

针对 13.4.1 Ventura 也遇到了同样的问题。

Иван Балдин 的回答应该有效,但他们添加了第二行。

if [ -x "$WINELOADER" ]; then exec "$WINELOADER" "$appname" "$@"; fi
...
if [ -x "$appdir/wine" ]; then exec "$appdir/wine" "$appname" "$@"; fi

注释掉这两行,winecfg 就可以工作了。

答案4

尝试编辑 winecfg 文件,注释掉此行

if [ -x "$appdir/wine" ]; then exec "$appdir/wine" "$appname" "$@"; fi

它应该看起来像这样

#if [ -x "$appdir/wine" ]; then exec "$appdir/wine" "$appname" "$@"; fi

相关内容