我期望從包括SUSE(桌面,服務器),RHEL(桌面,服務器),Ubuntu,AIX,Solaris在內的各種UNIX操作系統的源代碼構建python(2.7版本) (SPARC)操作系統。C編譯器從各種unix風格的源代碼構建python
此外,其中一些操作系統可能必須構建32位和64位版本。我也想盡量減少(共享)庫的依賴。
也就是說,使用本地C編譯器(cc)比使用gcc更好嗎?交叉編譯是否更好?
謝謝。
我期望從包括SUSE(桌面,服務器),RHEL(桌面,服務器),Ubuntu,AIX,Solaris在內的各種UNIX操作系統的源代碼構建python(2.7版本) (SPARC)操作系統。C編譯器從各種unix風格的源代碼構建python
此外,其中一些操作系統可能必須構建32位和64位版本。我也想盡量減少(共享)庫的依賴。
也就是說,使用本地C編譯器(cc)比使用gcc更好嗎?交叉編譯是否更好?
謝謝。
我認爲最好是在操作系統本身上構建,而不是「交叉編譯」。雖然這都是Unix,但交叉編譯也可以很好地工作,只需付出一點努力。但在操作系統上構建二進制代碼可能更容易。我想這也取決於你是否靜態鏈接。
Python的構建過程本身會選擇最好的編譯器,並且至少在大多數情況下,它會將gcc選爲cc。
是的,選擇編譯器是由配置腳本完成的。然而,我擔心的是:在我的構建機器上,如果構建發生在gcc中,並且相同的二進制文件在客戶機上沒有安裝gcc的相同操作系統上運行,那麼可能會因gcc相關(共享)庫依賴關係。 –
@KiranMN:這不僅僅與gcc相關,如果你沒有鏈接到可執行文件的庫中,庫必須安裝在目標機器上。 Python使用的庫有許多負載和負載,這是真的。對此的解決方案通常是創建一個包也會強制依賴的安裝。但是對於大多數(可能是所有?)目標來說,這些包已經存在於Python中。所以這留下了一個簡單的問題:你爲什麼想要這樣做? –
我們正在尋找使用Python從頭開始實施新客戶端。並且,要求在Windows(XP,Vista,7),MAC OS X,Linux(如上所述),Solaris(SPARC),AIX(PowerPC)等各種平臺上運行。因此,我們需要一個Python運行時在這些平臺上編譯和執行我們的腳本。而且,通常不是所有平臺都帶有python內置,即使它來了,版本可能會有所不同。因此,我們考慮爲UNIX等平臺構建和捆綁Python二進制文件。 –
Python源代碼是否有某種配置腳本來查找可用的編譯器?而且,在很多情況下,本地編譯器可能是GCC。 –
是的,它有一個配置腳本。並且,它確實有一些選擇編譯器的邏輯。缺省爲gcc,但在AIX上選擇本地編譯器。 –
你對我的回答的評論需要這個問題:你爲什麼要這麼做?這些系統已經有Python 2.7包可用。其他人已經這樣做了。 –