Mac OSX 10.6 (Snow Leopard)にGHCをインストールするときの注意点をまとめました。
Mac Portsではインストールできない
MacPortsのghcはまだOSX 10.6には対応していないので、MacPortsからGHCをインストールすることはできません。
$ sudo port install ghc
---> Computing dependencies for ghc
---> Fetching ghc
Error: Target org.macports.fetch returned: ghc is not yet supported on Mac OS X 10.6.x (SnowLeopard)
ではどうやってインストールするのか?
OSX 10.6にGHCを入れるには、Haskell Platformにあるバイナリを使います。
HaskellPlatform
ところが・・・
それでも動かない!
実は、HaskellPlatformのバイナリをインストールしても、そのままでは動きません。
理由は、Snow Leopardとその中にあるコンパイラが基本的に64bitでの処理となったことに伴い、GHCがOSX用に生成する32bitのコードでは、アセンブラとリンカがエラーを出してしまうためです。
じゃあどうすればいいの?
GHCが動作するようにするには、ghcにパッチを当てて、32bitコードのままバイナリが生成されるようにします。
具体的には、/usr/bin/ghc (GHC自体を呼び出すためのシェルスクリプト)をテキストエディタで編集して、オプションに-optc-m32 -opta-m32 -optl-m32を追加します。
/usr/bin/ghc
#!/bin/sh
exec /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/ghc -optc-m32 -opta-m32 -optl-m32 -B/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/. -dynload wrapped ${1+"$@"}
これで、OSX 10.6でGHCを使えるようになります。
■最近のエントリ
Silverlightとトロイの木馬
ghciのコマンドまとめ
MacBookPro用インナーケースまとめ
欧米企業のソーシャル・メディア・マーケティングの普及状況
Google Analyticsのカスタム変数機能とは?
-
0 件のコメント:
コメントを投稿