![可执行文件中的 CPU 类型错误:wine @ macOS Catalina](https://linux22.com/image/1612957/%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%20CPU%20%E7%B1%BB%E5%9E%8B%E9%94%99%E8%AF%AF%EF%BC%9Awine%20%40%20macOS%20Catalina.png)
我的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