Haskell - 如何从非Main模块创建二进制文件?

9

我经常在测试中留下 main :: IO () 函数的情况。我可以使用 runghc 命令运行这些函数,但有时我想将它们编译(例如在另一个平台上运行)。是否有一种方法可以做到这一点?例如,如果我运行以下命令:

ghc --make Test.Haar

如果 Test/Haar.hs 中有一个 main 方法,那么什么都不会发生,它只会创建一个 .o 文件。


1
我不确定那是否是你要找的,但可以查看-main-is选项(文档位于http://www.haskell.org/ghc/docs/7.2.1/html/users_guide/options-phases.html)。 - fs.
2个回答

13
ghc --make -main-is Test.Haar Test.Haar

4
请注意,使用-main-is Test.Haar后,如果您想将该模块用作其他程序的一部分,则必须在没有-main-is的情况下重新编译它,否则链接器会找到两个入口点并抛出错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接