使用LLVM编译Haskell

5

我开始学习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` 而出现问题,有一些可以修改的搜索路径来解决问题吗? 感谢您的帮助,祝您拥有美好的一天。

6
据我所知,GHC对使用的LLVM版本非常敏感(或者至少曾经如此),因此您可能需要安装3.7版。问题在于LLVM的发布周期频繁且包含破坏性功能,使得让GHC与这些版本兼容很麻烦。有关更多详细信息,请参见此页面。 - Alec
1个回答

8
根据GHC文档,它与llvm-2.8+兼容,但你发现它实际上需要llvm-3.7。最简单的方法是:安装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

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