Osx

在 10.15.x 中執行“錯誤的 CPU 類型”執行檔

  • November 6, 2019

我正在嘗試執行在 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 尚不支持此功能。)

macOS Catalina (10.15)放棄了對 32 位執行檔的支持,這就是您的執行檔不再工作的原因。

理想的解決方案是建構一個 64 位二進製文件。Lazarus wiki描述瞭如何做到這一點:以 x86_64 為目標,使用 Cocoa 小元件,並使用fpc而不是ppc386.

引用自:https://unix.stackexchange.com/questions/550616