2009-11-14 369 views
7

我最近升級了我的操作系統到Snow Leopard,這打破了我的GHC。我可以通過在/ usr/bin/ghc中添加用於32位編譯的標誌(類似於-optl -m32 -opta -m32 -optc -m32,從here收集)來在一臺機器上修復它。現在我無法爲我的另一臺支持64位的機器生成64位二進制文​​件。 32位標誌會中斷,並將它們刪除。有小費嗎?如何從GHC for Snow Leopard獲取64位二進制文​​件?

當我嘗試編譯我得到的東西是這樣的:

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:212:0: 
32-bit absolute addressing is not supported for x86-64 

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:212:0: 
cannot do signed 4 byte relocation 

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:215:0: 
32-bit absolute addressing is not supported for x86-64 

/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:215:0: 
cannot do signed 4 byte relocation 

謝謝!

回答

1

我的理解是,在目前GHC不能產生下雪豹正確的64位二進制文​​件。這似乎部分是因爲其64位鏈接生成中的一個錯誤,部分原因是由於本地工具鏈的更改。你提到的解決方法只是告訴它產生一個32位的目標,因此不會成爲你的問題的任何實際解決方案的一部分。

+0

欲蓋彌彰!我想我必須在我的32位機器上開發。 感謝您的答覆,我將其標記爲回答,如果我沒有聽到任何的明天更有希望的^ _^@ – 2009-11-15 02:52:46

+0

paul.meier:您仍然可以在64位機器上工作。您只需要GHC生成32位二進制文​​件。我的Core 2 Duo MacBook Pro上帶有Snow Leopard的GHC,並且使用相應的標誌設置進行了編譯。 – Chuck 2009-11-16 21:02:57

相關問題