2009-11-14 125 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

相关问题