Osx
在 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 尚不支持此功能。)
macOS Catalina (10.15)放棄了對 32 位執行檔的支持,這就是您的執行檔不再工作的原因。
理想的解決方案是建構一個 64 位二進製文件。Lazarus wiki描述瞭如何做到這一點:以 x86_64 為目標,使用 Cocoa 小元件,並使用
fpc
而不是ppc386
.