2016-12-11 4 views
0

Я начинаю изучать Haskell, и я узнал, что ghc может скомпилировать с использованием LLVM с флагом -fllvm. Всякий раз, когда я использую флаг, я получаю сообщение об ошибке:Компиляция ghc с 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 

Однако, у меня есть opt в моей /usr/local/Cellar/llvm/3.9.0/ папки. Я нахожусь в Mac OS X, и я установил полный LLVM с brew install llvm, но ошибка сохраняется. Является ли эта проблема подлинной версией, когда мне нужно unistall LLVM и переустановить ее версию 3.7? Или есть ghc, имея проблемы с поиском opt и есть какой-то путь поиска, который я могу изменить, чтобы исправить проблему? Спасибо за помощь и у вас отличный день.

+6

IIRC GHC является (или, по крайней мере раньше) довольно обидчивый о версии LLVM используется, так что вам может понадобиться установить 3.7. Проблема в том, что LLVM имеет довольно частый цикл выпуска с нарушением функций. Сохранение GHC, работающего с этими версиями, является болью. См. [Эту страницу] (https://ghc.haskell.org/trac/ghc/wiki/ImprovedLLVMBackend) для получения более подробной информации. – Alec

ответ

0

GHC documentation говорит, что он совместим с llvm-2.8 +, но, как вы обнаружили, на самом деле это требует llvm-3.7.

Самый простой способ получить это:

brew install [email protected]

Это устанавливает LLVM исполняемые файлы на вашем пути с -3.7 суффикса, как clang-3.7. GHC потребуются неукрашенные имена, которые находятся в подкаталоге:

export PATH=/usr/local/opt/[email protected]/lib/llvm-3.7/bin:$PATH

Смежные вопросы