20

Cabal是否可以在构建库时告诉公开所有模块?

现在我必须在exposed-modulescabal 配置文件部分提供很长的模块列表。

4

2 回答 2

10

现代的答案是stack + hpack而不是使用显式的 cabal 配置。它可以自动公开包模块并提供许多其他增强功能。

于 2016-11-21T23:05:51.380 回答
9

您必须列出 cabal 配置文件中的所有模块。在您的情况下,您只需将模块列表放在exposed-modules:. 没有更简单的方法来编写模块列表。

Cabal 无法自动找到属于可执行文件或库的文件,因此它依赖于配置文件中的模块列表。与 GHC 不同,cabal 无法根据源代码中的 import 语句找到模块。如果您没有列出每个模块,那么您可能能够构建项目(因为 GHC 可以找到源文件),但其他命令(例如)cabal sdist不会访问未列出的源文件。

于 2013-08-06T20:33:12.487 回答