在 10.15.x 中执行“Bad CPU type”可执行文件

Asq*_*qan 2 osx cpu compatibility executable

我正在尝试执行在 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
Run Code Online (Sandbox Code Playgroud)

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

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

Ste*_*itt 5

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

理想的解决方案是构建 64 位二进制文​​件。Lazarus wiki描述了如何做到这一点:针对 x86_64,使用 Cocoa 小部件,并使用fpc而不是ppc386.