haskell-jp / beginners #15 at 2021-03-19 18:14:36 +0900
Back to beginners #15
sirkerf
2021-03-19 18:14:36 +0900
Could not find module ‘Data.Vector.Unboxed’というエラーが出ました。
ハッケージにはあるんですけどこれは何故なのでしょうか?
takoeight0821
2021-03-19 19:07:37 +0900
もう少し詳細な情報はありますか?(システムにインストールしたghcでコンパイルした、cabal buildした、stack buildした、など)
例えば、stackの場合はpackage.yamlのdependenciesにvectorを追加すると、Data.Vector.Unboxedなどのvectorパッケージが提供するモジュールを使えるようになります
sirkerf
2021-03-20 20:06:06 +0900
stackでbuildしました。
package.yamlのdependenciesにvectorを追加するのは、どうすればいいでしょうか?
takoeight0821
2021-03-20 22:20:19 +0900
dependencies: - base - vector # この行を追加
のように、そのままvectorをdependenciesに追加すればOKです。package.yamlの詳細な書き方が知りたいときは stackのUser guide(
)やhpackのREADMEを読むと良いです。
sirkerf
2021-03-24 21:18:12 +0900
package.yamlが見つかりませんね……。
どこを探すとあるのでしょうか?
takoeight0821
2021-03-25 16:31:53 +0900
普通にstack newしたなら、src/ディレクトリがあるディレクトリにあるはずです。
ですが、package.yamlが見つからないということは、stack ghcなどでファイルを直接コンパイルしているのだと思います(違ったらこの段落は読み飛ばしてください)。その場合は、stackに`--package vector`オプションを渡します。例えば`stack ghc Main.hs --package vector`。
この下りはドキュメントを読んだだけなのであまり自信がないです。もしかしたら、コンパイルする前に`stack install vector`を実行するだけでいいかも。
もう一つありえるのは、hpackを使わず.cabalファイルを直接使っている可能性です。その場合は、<プロジェクト名>.cabalのbuild-dependsにvectorを追加します。`build-depends: base, vector`のように`,`区切りで書きます。
sirkerf
2021-03-31 17:22:04 +0900
stack install vector
で通りました。
ありがとうございます。
返事が遅れて申し訳ありません。
Back to beginners #15