7

我最近将我的操作系统升级到了雪豹,它破坏了我的 GHC。通过在 /usr/bin/ghc 中添加用于 32 位编译的标志(类似于 -optl -m32 -opta -m32 -optc -m32,从这里收集),我能够在一台机器上修复它。现在我无法让它为我的另一台支持 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

谢谢!

4

2 回答 2

2

Haskell 平台的 64 位 Snow Leopard 安装程序自 2011 年起可用。

Haskell 平台

于 2011-04-18T18:01:23.453 回答
1

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

于 2009-11-14T20:55:58.940 回答