我经常会遇到在测试中使用main :: IO()
函数的情况。我可以用runghc
来运行这些,但有时我想编译它们(例如,在另一个平台上运行)。有没有办法做到这一点?如果我运行,例如,haskell - 如何从非主模块创建二进制文件?
ghc --make Test.Haar
其中Test/Haar.hs
有main
方法,那么什么都不会发生,它只是创建.o
文件。
我经常会遇到在测试中使用main :: IO()
函数的情况。我可以用runghc
来运行这些,但有时我想编译它们(例如,在另一个平台上运行)。有没有办法做到这一点?如果我运行,例如,haskell - 如何从非主模块创建二进制文件?
ghc --make Test.Haar
其中Test/Haar.hs
有main
方法,那么什么都不会发生,它只是创建.o
文件。
ghc --make -main-is Test.Haar Test.Haar
但是请注意,在使用-main-is Test.Haar
后,如果您想使用该模块作为另一个程序的一部分,你必须重新编译它没有-main-is
,否则连接器会发现两个入口点和抛出错误。
我不确定这是否是您要查找的内容,但请查看-main-is选项(文档位于http://www.haskell.org/ghc/docs/7.2.1/html/users_guide/options -phases.html) –