我經常會遇到在測試中使用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) –