【问题标题】:How to get 64-bit binaries from GHC for Snow Leopard?如何从 GHC 为 Snow Leopard 获取 64 位二进制文​​件?
【发布时间】:2009-11-14 06:42:38
【问题描述】:

我最近将我的操作系统升级到了 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

谢谢!

【问题讨论】:

    标签: haskell 64-bit osx-snow-leopard ghc haskell-platform


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 跛脚!我想我必须在我的 32 位机器上进行开发。感谢您的回复,如果我明天没有听到任何更有希望的消息,我会将其标记为已回答^_^
      • @paul.meier:您仍然可以在 64 位机器上工作。您只需要让 GHC 生成 32 位二进制文​​件。我在带有 Snow Leopard 的 Core 2 Duo MacBook Pro 上安装了 GHC,并且在设置了适当的标志后它编译得很好。
      猜你喜欢
      • 2010-12-27
      • 2010-11-29
      • 2011-05-05
      • 2011-10-18
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多