簡短問題:如何獲取兩個應用程序,一個用於英特爾和另一個ppc,並將它們打包爲一個通用二進制文件?從兩個應用程序創建一個「通用二進制」?
我對這個問題當前的想法:
我已閱讀雖然在通用二進制代碼的蘋果開發者文檔,並一直無法找到答案,因此它可能是不可能的。
由於原因,我不會進入這裏我有我的計劃的兩個應用程序(並列使用了Xtools編譯二進制普遍一次),一個是英特爾Mac和其他的Mac> = 10.3.9上運行PPC。共享資源不是問題。
我可以把MyProg_intel.app和MyProg_ppc.app放到一個zip文件中,然後以這種方式分發它;但這可能會導致我將要分發我的程序的許多人感到困惑。
lipo看起來像它可能是我的解決方案,但input_file期待二進制文件或其他類型的文件 - 不是.app(當我嘗試它說_無法映射輸入文件((os/kern)無效參數) _)。我的程序是用python編譯的,而且我的打包方法並沒有將每個東西都編譯成一個二進制文件,還有大量的依賴關係。 – marshallpenguin 2009-08-19 14:41:42
您可以使用lipo合併二進制文件:lipo myapp_ppc.app/Contents/MacOS/myapp -output myapp_i386.app/Contents/MacOS/myapp將PPC端合併到英特爾應用程序中,然後您可以將其重新命名爲通用應用程序。 但其他海報更正確。在構建和鏈接每個架構之後,您應該首先創建應用程序通用性,而不是構建.app兩次並丟棄一次。 – cdespinosa 2009-08-19 15:40:34
py2app已經生成了一個通用二進制文件。爲什麼不用CFLAGS,CXXFLAGS和LDFLAGS中的「-arch i386 -arch ppc」構建你的依賴關係? – 2009-10-08 10:22:39