2011-03-12 24 views
0

py2app相關的錯誤結束與下面的錯誤結束:py2app一起libgfortran.3.dylib

/usr/bin/strip: the __LINKEDIT segment does not cover the end of the file 
(can't be processed) in: test.app/Contents/Frameworks/libgfortran.3.dylib 
stripping saved 1222348 bytes (88617336/89839684) 

控制檯輸出的最後一行:

../Frameworks/libgfortran.3.dylib: mach-o, but wrong architecture 

我怎樣才能解決這個問題?

我使用 雪豹(x86_64的)
的Python 2.6.6(r266:84292,2011年2月4日,二十時12分20秒)
[GCC 4.2.1(蘋果公司建立5646)(點1)]在達爾文

回答

0

首先確定您計劃爲其構建的體系結構和操作系統版本。

然後確保libgfortran和您的其他依賴關係是爲這些體系結構編譯的。 (您可以使用lipo -infofile來打印包含在Mach-O二進制文件中的體系結構)。最後,如果架構是您正在使用的Python版本的那些架構的子集,則編譯/使用僅針對這些架構而構建的Python版本,或者使用hack distutils來刪除標誌(並在需要時添加-isysroot),如this script

+0

@ nicholas-riley:好的,我有點迷失在這裏。我使用MacPorts的py26-py2app-devel(0.5.3)。它是通用的。我也有來自macports的gcc44,雖然它不是默認的gcc。 gcc44也是內置的+通用的,但不知何故libgfortran.3.dylib只是i386。我如何理解py2app使用的gcc?最後,我實際上並不需要64位,這還不是終端用戶軟件,我現在只在我自己的機器上進行測試。什麼是最簡單的出路方式? – gok 2011-03-12 17:43:54

+0

distutils(這是你在py2app中使用的)嘗試調用帶編譯標誌的編譯器。因此,如果您使用MacPorts中的Python,它將使用該版本的Python。我認爲默認情況下MacPorts只有64位,所以你最好的選擇可能是從python.org安裝一個32位的Pythons並使用它。可能比試圖修復gfortran的構建過程更容易。 – 2011-03-12 22:13:30