在 10.15.x 中执行“错误的 CPU 类型”可执行文件

在 10.15.x 中执行“错误的 CPU 类型”可执行文件

我正在尝试执行在 macOS 10.14.x 上运行的已编译的 Lazarus 文件。更新到 10.15 后,我开始收到错误“可执行文件中的 CPU 类型错误”,据我所知,这意味着它不再兼容。

./myScript
->>>>>>>>>>>>>>> bad CPU type in executable
file myScript
->>>>>>>>>>>>>>> Mach-O executable i386
uname -a
->>>>>>>>>>>>>>> Darwin-MacBook-Air.local 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 x86_64
uname -p
->>>>>>>>>>>>>>> i386

我想知道为什么这个可执行文件会导致此错误,而它是必须与此版本兼容的 i386?

有什么方法可以在 macOS 10.15.x 上运行它吗?或者是使用不同的、兼容的构建设置再次构建它的唯一方法? (Lazarus 尚未支持这一点。)

答案1

macOS Catalina (10.15)放弃对 32 位可执行文件的支持,这就是您的可执行文件不再有效的原因。

理想的解决方案是构建 64 位二进制文​​件。拉撒路维基描述了如何执行此操作:目标 x86_64,使用 Cocoa 小部件,并使用fpc而不是ppc386.

相关内容