我想在Mac OSX 10.6.5上編譯一個包。該包的安裝腳本依賴於distutils。問題是計算機的默認gcc是4.2版本(我通過在終端窗口中運行gcc --version來確定),但是當我運行'python setup.py build'時,我從輸出中看到distutils選擇gcc -4.0而不是4.2這是一個很大的問題,因爲我使用的代碼需要gcc> = 4.2。我沒有這臺機器的管理員權限,所以作爲一個工作區,我創建了一些將gcc-4.0發送到gcc-4.2的符號鏈接。結果是代碼編譯,但生成的.so文件不起作用(當我嘗試在python中導入它們時,出現抱怨共享對象中缺少初始化函數的錯誤)。Python distutils不使用正確版本的gcc
我試過在不同的mac上編譯這段代碼(10.6.6),它的工作方式就像一個魅力:distutils選擇4.2而不必強迫這樣做,我可以導入生成的共享對象,而不會出現問題。所以,我想要做的是在我的電腦上編譯代碼,而不必執行這種符號鏈接技巧......我只想讓distutils自動選擇4.2。我已經嘗試過將.so文件正確編譯並將它們傳輸到我的計算機,但由於許多原因(它們與我的計算機上不存在的庫鏈接,是與安裝的版本不同的版本)失敗。
有沒有人有任何建議嗎?
感謝, 喬希
這似乎並不奏效。有效的編譯器只是'gcc'。在版本中投擲不起作用 - 它會拋出一個錯誤,說它不知道如何使用gcc42進行構建。 – 2011-05-11 16:10:01
應該可能是'--compiler = gcc-4.2' – cdarke 2011-05-11 16:11:44
不幸的是,這仍然沒有幫助。如果您檢查distutils.ccompiler,可用的選項是「unix」或「minwg」。它似乎沒有注意到版本的東西。 – 2011-05-11 16:25:13