2017-03-07 85 views
0

我正在關注Haskell中的Asteroids教程(Haskeroids),我遇到了子模塊問題。基本上,我的文件夾結構是這樣的:Haskell模式「找不到模塊」

project/ 
|-- main.hs 
|-- Haskeroids/ 
    |-- Geometry.hs 
    |-- Geometry/ 
     |-- Transform.hs 

的Geometry.hs文件有

module Haskeroids.Geometry where 

而Transform.hs文件有

module Haskeroids.Geometry.Transform where 
import Haskeroids.Geometry 

出於某種原因,GHC似乎尋找幾何/ Haskeroids/Geometry.hs。 是否有一些設置可以讓ghc知道在哪裏查找文件,以及爲haskell-mode設置它的方法是什麼?

編輯:錯誤消息是:找不到模塊Haskeroids.Geometry。使用-v查看搜索文件列表

+3

請發佈整個錯誤消息... – mb21

+0

我想你有一個cabal項目 - 你列出了所有的模塊嗎? – epsilonhalbe

回答

0

我看了一下你鏈接到的項目並檢查了cabal文件 - 因爲我建議你不要在那裏提到Haskeroids的東西。

.. 

Executable haskeroids 
    Main-is:   main.hs 

    Other-modules:  Haskeroids.Geometry 
       ,  Haskeroids.Geometry.Transform 

    Build-Depends:  base >= 4, transformers >= 0.2.2.0, 
         ... 

Other-modules部件添加到您的陰謀文件,一切都應該正常工作和花花公子。

+0

我還建議你使用'cabal'或'stack'來構建你的可執行文件,而不是直接調用ghc(通過build.bat) – epsilonhalbe

+0

啊謝謝。我對cabal/stack沒有太多經驗,所以我不會知道。 –