【问题标题】:Compiling haskell with llvm用llvm编译haskell
【发布时间】:2016-12-11 05:27:27
【问题描述】:

我开始学习 Haskell,我发现 ghc 可以使用带有 -fllvm 标志的 LLVM 进行编译。每当我使用该标志时,都会收到错误消息:

<no location info>: error:
Warning: Couldn't figure out LLVM version!
         Make sure you have installed LLVM 3.7
ghc: could not execute: opt

但是,我的 /usr/local/Cellar/llvm/3.9.0/ 文件夹中有 opt。我在 Mac OS X 上,我已经使用brew install llvm 安装了完整的 LLVM,但错误仍然存​​在。这是我必须卸载 LLVM 并重新安装其 3.7 版本的正版问题吗?或者ghc 找不到opt 并且我可以修改某种搜索路径来解决问题?感谢您的帮助,祝您有美好的一天。

【问题讨论】:

  • IIRC GHC(或至少曾经是)对所使用的 LLVM 版本非常敏感,因此您可能需要安装 3.7。问题是 LLVM 的发布周期非常频繁,并且具有破坏性功能。让 GHC 与这些版本一起工作是一件痛苦的事情。有关详细信息,请参阅this page

标签: macos haskell llvm ghc


【解决方案1】:

GHC documentation 说它与 llvm-2.8+ 兼容,但正如您所发现的,它实际上需要 llvm-3.7。

最简单的获取方式是:

brew install llvm@3.7

这会在您的路径中安装带有-3.7 后缀的llvm 二进制文件,例如clang-3.7。 GHC 将需要简单的名称,这些名称位于子目录中:

export PATH=/usr/local/opt/llvm@3.7/lib/llvm-3.7/bin:$PATH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2014-07-15
    相关资源
    最近更新 更多