6

我正在尝试使用 Fay 将 haskell 编译为 JS,并在--include选项之后使用一个目录,如下所示:

fay --include src\Tmv src\Tmv\Client\Main.hs

在 src\Tmv 中有一个 SharedTypes.hs 文件,它定义了一个Tmv.SharedTypes在 Client\Main.hs 中使用的模块。我收到以下错误:

Could not find module "Tmv.SharedTypes". Use -v to see a list of files searched for.

-v 选项不起作用。我已经尝试了参数的几种变体,例如。绝对路径、引号、转义(双)反斜杠。
配置:fay 0.10.1.0、ghc 7.4.2 (i386)、Windows 7 x64

4

1 回答 1

3

将其从评论中移出,因为它显然解决了问题:

当 GHC 查找源文件时,通常它希望在子目录Foo.Bar中找到一个模块,相对于它开始的任何“根”目录。例如,如果您以当前目录启动 GHCi,您将遇到模块找不到的问题,或者由于模块名称与 GHC 期望的不匹配而导致错误。Bar.hsFooFooBar

由于在您的情况下似乎在使用相同的规则,因此要导入Tmv.SharedTypes您希望SharedTypes.hs位于Tmv任何基本路径的子目录中,因此创建另一个Tmv子目录或src单独指定 for--include应该可以工作。

于 2012-12-20T21:09:25.533 回答