我最近将我的操作系统升级到了雪豹,它破坏了我的 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
谢谢!