0

コマンドを使用して新しいプロジェクトをstack new Proj-Name simple作成し、ディレクトリ内に作成したファイルで/src、GHC のベース ライブラリの外部にあるモジュールをインポートしましたimport System.Process。実行stack buildは成功し、ファイルは期待どおりに機能しました。ただし、stack ghci同じディレクトリ内で実行すると、インポート可能なモジュールとしてリストされていませんでした。System.Process

インポートしたすべてのモジュールが 内でインポート可能になるようにするにはどうすればよいstack ghciですか?

4

2 に答える 2

1

を実行するstack new ...と、simpleテンプレートを使用しても、スタックが機能するようにするいくつかのファイルが作成されることに気付くでしょう。これらの 1 つがファイルで、これを開くと、ファイルのセクションのProj_Name.cabal下に行があることに気付くでしょう。executable Proj_Namemain-is: Main.hs

デフォルトのmain-isファイルは になりますがMain.hs、何でもかまいません。インポートは、メイン ファイルとして機能させたい任意のファイル内に配置する必要があります。したがって、この場合、作成したファイル (System.Processインポートを含む)の名前をMain.hsその行の代わりに置くことができます。

これに続いて、 を実行しstack build、指示された依存関係を のbuild-depends: base >= 4.7 && < 5行の下に追加しますProj_Name.cabal。この場合は次のようになります。

build-depends:       base >= 4.7 && < 5
                   , process

もう一度実行しますstack build(さらに問題がある場合は、スタック ガイドを参照してくださいstack ghci。これで、そのファイルにインポートしたすべてのモジュールが利用できるようになります。

于 2015-09-07T00:48:56.033 に答える