如何从GHC获取适用于Snow Leopard的64位二进制文件?

7
我最近将我的操作系统升级到Snow Leopard,这导致我的GHC出现问题。我在一个机器上通过在/usr/bin/ghc中添加32位编译标志(例如-optl -m32 -opta -m32 -optc -m32,从here获取)来修复了它。现在我无法让它为另一台支持64位的机器生成64位二进制文件。32位标志会出现错误,而删除它们也会出现错误。有什么提示吗?
当我尝试编译时,会出现这样的东西:
/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

谢谢!

2个回答

2

1

我的理解是,目前 ghc 无法在 Snow Leopard 下生成正确的 64 位二进制文件。这似乎部分原因是由于其 64 位链接生成中的错误,部分原因是由于本地工具链的更改。你提到的解决方法只是告诉它生成一个 32 位目标,因此不会成为你问题的实际解决方案的一部分。


太糟糕了!我想我得在我的32位机器上开发了。谢谢你的回复,如果我明天没有听到更好的建议,我会将它标记为已回答的^_^。 - pablo.meier
@paul.meier:你仍然可以在64位机器上工作。你只需要让GHC生成32位二进制文件。我在我的Core 2 Duo MacBook Pro上安装了Snow Leopard的GHC,并且设置了适当的标志,编译也很顺利。 - Chuck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接