[英]Cocoa 32 bit and 64 bit binaries within app
我最新的Mac App被Mac App Store拒絕了。
基本上,由於該應用程序中包含一個自包含的unix可執行文件,因此無法正常工作。 我以前在我的應用程序中包含一個二進制文件,該應用程序在Mac App Store中,但是此Unix二進制文件給我帶來了麻煩。
我已經在一台i386機器上編譯了該二進制文件的2個不同版本,在x86_64機器上編譯了另一個版本。 使用“文件名”,我得到了64位二進制文件
Mach-O 64位可執行文件x86_64
和32位二進制
Mach-O可執行文件i386
在運行時,我嘗試執行正確的二進制文件,但是我發現這似乎無關緊要嗎? 我使用哪個二進制文件,可以在i386機器上執行x86_64,一切正常。
我的應用程序構建設置是默認項目(標准的32/64位Intel)附帶的設置。
問題是,當我的應用程序在i386機器上運行時,我應該嘗試運行32位二進制文件嗎?
當我在i386機器上運行x86_64二進制文件時,為什么還能正常工作?
謝謝,約翰。
為什么不將Unix工具構建為通用二進制文件? 然后,操作系統將根據計算機的體系結構選擇要運行的正確版本的二進制文件。
編輯 -添加我的評論作為正確答案的一部分。
您需要構建i386和x86_64二進制文件。 顯然,您需要為兩種體系結構構建exe及其所有依賴項。 對於i386體系結構,在任何地方使用gcc標志-arch = i386可能就足夠了。 然后,您可以使用lipo組合兩個二進制文件。
您使事情變得太復雜了。 您不需要64位計算機來構建64位二進制文件,也不需要在64位計算機上構建32位二進制文件。
GCC以及XCode easilly支持構建32位通用映像或32/64位通用映像,因此您完全不必擔心運行正確的映像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.