Edited at

さくっとHaskellの開発環境を整える(Stack)

More than 1 year has passed since last update.

Windows で Haskell 環境構築(Stack)

Stackでやる最速Haskell Hello world! (GHCのインストール付き!)

これを参考にしてたけど今は変わってるらしいので1から書いておく。

2017/7/24 Windows解説を最新に更新。

環境

- Windows 10

- Mac OS X El Capitan


WindowsにStackを導入する

まずはWindowsから。


  1. 以下から最新のStackをダウンロードしてくる。(現段階の最新版はv1.5.0)




  2. stack-1.5.0-windows-x86_64-installer.exeをダウンロード(64bit版は無い模様)。

  3. インストールする。Pathとかは通さなくても自動でやってくれる模様。

  4. 完了後、cmd.exeを開いてstackと打っていろいろ出てくればOK。


GHCのインストール

ビルドにはGHCなるものが必要らしい。これもstackの機能で用意されている。

stack setup

上記を実行でインストールが開始される。

僕の貧弱ノートだとそこそこ時間かかったのでその間コーヒーでも飲んで待ちましょう。

終わるとCAUTIONとか危なそうな表示になるけど、cmd.exeを再起動してね、ってだけなので再起動する。


Stackで新しいプロジェクトを作成


  1. とりあえず任意の場所に新しいプロジェクト用のフォルダを作成。


    • 僕はいつもC:\workspace\の下にプロジェクトを作っているので、HaskellTestというフォルダを作成。



  2. cmd.exeでcd C:\workspace\HaskellTest\と打って、以下を実行。

stack new haskellTest

haskellTestは今回のプロジェクト名。

実行が終わるとC:\workspace\HaskellTest\の下にhaskellTestというフォルダが生成される。


ビルドしてみる

初期に入ってるのはいわゆる空プロジェクトなので、Hello Worldにする。

参考)Stackでやる最速Haskell Hello world! (GHCのインストール付き!)

いわゆるmain関数はhaskellTest\appに入っているMain.hs

main関数は以下のようになっている


Main.hs

module Main where

import Lib

main :: IO ()
main = someFunc


僕はまだHaskellを知らないので、上を解説できませんが、どうやらmain = someFuncがMainの中身らしい。

someFuncはhaskellTest\src\Lib.hsにある。Lib.hsの中身は以下。


Lib.hs

module Lib

( someFunc
) where

someFunc :: IO ()
someFunc = putStrLn "someFunc"


この"someFunc"を"Hello, World!"に書き換えて準備完了。

ビルドには以下のコマンドで実行可能。

cd C:\workspace\HaskellTest\haskellTest

stack build


ビルドしたファイルの実行

どういう仕組みかわかんないけど、

stack exec 指定したプロジェクト名-exe

で実行できるらしい。上のサンプルだと以下のように実行する。

stack exec haskellTest-exe

これでHello, World!が表示されます。


MacにStackを導入する


  1. 以下から最新のStackをダウンロードしてくる。(現段階の最新版はv1.1.2)



  2. ダウンロードした.tar.gzを解凍して任意の場所に移動する。


Pathを通す

Mac版はインストール版が無かったのでPathを自分で設定する。

まずは.bash_profileを開く


  • まずはルートに戻る。以下で戻れる。

$ cd


  • .bash_profileを開く

$ sudo vi .bash_profile


  • キーボードのiを押して編集モードにして、以下を追加する

PATH=$PATH:stackのフォルダのパス

export PATH



  • :wqで保存して閉じる

  • 以下を実行してPathを適用する

$ source ~/.bash_profile

以上でPathが通りました。$ stackと書いて色々表示されればOK

後はWindowsと同じだぜ!


エラーと対処法


コンパイラが見つからないぜ?!

No compiler found, expected minor version match with ghc-8.0.2 (x86_64) (based on resolver setting in C:\sr\global-project\stack.yaml).

To install the correct GHC into C:\Users\ichi-dohi\AppData\Local\Programs\stack\x86_64-windows\, try running "stack setup" or use the "--install-ghc" flag.



  • stack setup --install-ghcで解決