使用cabal init初始化Cabal项目时未生成Main.hs问题求助
问题原因
你使用的Cabal版本(1.18.x)和你参考的3.6版官方文档的cabal init行为不兼容。Cabal 1.18是2014年发布的老旧版本,默认的cabal init交互流程不会自动生成Main.hs文件,而3.0及以上版本的Cabal才支持初始化时自动生成入口代码文件。
解决方案
方案1:升级Cabal到最新稳定版
这是最推荐的处理方式,现在主流的Haskell工具链都会附带3.x以上版本的Cabal,升级后重新执行cabal init即可自动生成Main.hs、cabal项目配置等全套基础文件。
方案2:适配Cabal 1.18版本手动补全
如果你暂时不需要升级版本,可以按以下步骤操作:
- 执行完
cabal init交互流程后,手动在项目根目录新建对应源码文件夹(和.cabal配置内指定的源码路径保持一致即可) - 手动创建
Main.hs文件,写入基础入口代码:
main :: IO () main = putStrLn "Hello Haskell"
- 检查生成的
.cabal配置文件中的executable段,确认main-is字段的值为Main.hs,hs-source-dirs指向你存放Main.hs的目录
内容的提问来源于stack exchange,提问作者Danish A. Alvi
相关产品推荐
相关产品推荐

