我有一个仅存在32位版本的应用程序。为了使用它,我曾经在引导Mac时同时按2
&键3
,所以它将在32位模式下运行。但是,某些应用程序(之前安装的64位版本)将始终在此模式下崩溃。
我偶然看到在64位系统中运行32位应用程序的解决方案:
arch -i386 theApp.app
但是我尝试了arch: /Applications/theApp.app isn't executable
错误。我检查了文件权限,并显示drwxrwxr-x
,它应该是可执行文件,对吗?
编辑:正如@ gd1所说,TheApp.app是一个文件夹(我认为它在OSX中称为bundle),因此它不是可执行文件。
但是我仍然需要一种解决方法:
如何在我的64位系统中正确运行32位应用程序?
编辑:我arch
现在可以使用命令打开应用程序(感谢@GordonDavisson):
arch -i386 /Applications/theApp.app/Contents/MacOS/theApp
但是,该应用程序运行Components lost
出错,日志显示如下:
Kjuly@MacBook-Pro:/Applications$ arch -i386 闪讯.app/Contents/MacOS/闪讯
2012-01-08 16:17:53.381 闪讯[472:1107] isActive: ioctl to kernel socket error 2 ,No such file or directory
2012-01-08 16:17:53.436 闪讯[472:1107] The AppPath = /Applications/闪讯.app
2012-01-08 16:17:53.437 闪讯[472:1107] The src path = /Applications/Èó™ËÆØ.app/xlpppoe.kext
2012-01-08 16:17:58.892 闪讯[472:1107] Set Driver Ok...
/tmp/xlpppoe.kext failed to load - (libkern/kext) requested architecture/executable not found; check the system/kernel logs for errors or try kextutil(8).
顺便说一句,闪讯.app
(我讨厌它!但是我需要它..)用于连接我在中国大学的网络。
编辑:
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/Contents/MacOS/闪讯
/Applications/闪讯.app/Contents/MacOS/闪讯: Mach-O executable i386
和
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe
/Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe: Mach-O object i386
似乎只有32位,并且取决于32位内核。哦,我很难过。:(
这是我在@GordonDavisson的帮助下获得的一些信息,也许有人需要它。
该DOC显示出一些方法来暂时与32位内核启动使用旧的内核扩展的第三方软件或硬件。
它是关于“与64位内核的兼容性”的:
依赖于与Mac OS X Server v10.5兼容的内核扩展的第三方软件(例如虚拟化引擎)或硬件(例如PCIe卡)可能不适用于在以下操作系统中使用64位内核的Mac: Mac OS X v10.6。请与软件或硬件供应商联系,以获取与Mac OS X Server v10.6中的64位内核一起使用的更新的内核扩展。
解决方法是,您可以暂时使用32位内核启动,以将较旧的内核扩展名用于第三方软件或硬件。