所以好不容易弄完之後,決定來紀錄一下這整件
痛苦的事。
話說要裝llvm-2.7很簡單,就
> brew install llvm
。輕鬆、快速又好吃~
然後就想要開開心心的灌一下llvm haskell binding
結果,config一直死掉:
...snip...
checking for unistd.h... yes
checking llvm-c/Core.h usability... yes
checking llvm-c/Core.h presence... yes
checking for llvm-c/Core.h... yes
checking for LLVMModuleCreateWithName in -lLLVMCore... no
configure: error: could not find LLVM C bindings
cabal: Error: some packages failed to install:
llvm-0.8.0.2 failed during the configure step. The exception was:
exit: ExitFailure 1
上網查了以後發現問題出在Mac上面,但是實際
原因不明。總之,作法很簡單:就是把llvm-2.7
重新build成universal binary就好了,以下
重現當時機歪的整個過程(含brew的link):
[0] 砍掉原本brew install來的llvm 2.7
> brew uninstall llvm
[0.1] 準備給homebrew用的folder
(假設homebrew的prefix=/usr/local)
> cd /usr/local/Cellar
> mkdir llvm-gcc
> mkdir llvm-gcc/4.2
> mkdir llvm
> mkdir llvm/2.7
[1] 抓一下llvm和llvm-gcc
> wget 'http://llvm.org/releases/2.7/llvm-gcc-4.2-2.7-x86_64-apple-darwin10.tgz'
> wget 'http://llvm.org/releases/2.7/llvm-2.7.tgz'
> tar xzf llvm-gcc-4.2-2.7-x86_64-apple-darwin10.tgz
> tar xzf llvm-2.7.tgz
[2] 手動安裝(copy)一下llvm-gcc-4.2到/usr/local/Cellar下面去
> cd llvm-gcc-4.2-2.7-x86_64-apple-darwin10
> cp -R ./* /usr/local/Cellar/llvm-gcc/4.2
> brew link llvm-gcc
> cd ..
[3] make/make install llvm-2.7
> cd llvm-2.7
> ./configure --prefix=/usr/local/Cellar/llvm/2.7 --with-llvmgccdir=/usr/local/Cellar/llvm-gcc/4.2
(這邊要等一會兒)
> set -x UNIVERSAL 1
> make
(這邊要等一個小時左右)
> make install
> brew link llvm
> cd ..
至此,llvm-2.7和llvm-gcc-4.2就都裝好了。
llvm重灌好以後就直接
> cabal install llvm
就ok了
llvm haskell binding裝好以後,可以跑一下
他的example。看是要去這裡抓?還是要直接
解開~/.cabal/packages/hackage.haskell.org/
llvm/0.8.0.2/llvm-0.8.0.2.tar.gz這一個檔案。進去以後直接
> make
以後再看想要執行程式即可。
如果執行起來有問題可以參考這個。
以上參考自這篇和這篇