[英]GHC compiles to .o and .hi but no executable
我一直在处理一个小文件,我一直在编译和运行 go。 我的目录包含Log.hs
和LogAnalysis.hs
。
LogAnalysis.hs
看起来像这样:
{-# OPTIONS_GHC -Wall #-}
module LogAnalysis where
import Log
parseMessage :: String -> LogMessage
--some code...
main :: IO ()
main = do
putStrLn (show (parseMessage ("Some log message text")))
当我使用 GHC 编译LogAnalysis.hs
时,我得到了一个可执行文件以及一些其他二进制文件:
$ ll
Log.hi
Log.hs
Log.o
LogAnalysis <-- this is the executable which has disappeared
LogAnalysis.hi
LogAnalysis.hs
LogAnalysis.o
我做了一些小改动,现在当我运行ghc LogAnalysis.hs
时,我只得到.hi
和.o
文件,但没有可执行文件。 output 是:
[1 of 2] Compiling Log ( Log.hs, Log.o )
[2 of 2] Compiling LogAnalysis ( LogAnalysis.hs, LogAnalysis.o )
我什至不确定我改变了什么,但这不是什么大不了的。 知道是什么触发了这个吗? 有什么方法可以强制 GHC 生成可执行文件吗?
规格:GHC 8.8.3,macOS 10.15.5
有一种更简单的方法可以修复它,删除第二行:
module LogAnalysis where
我相信当你将它定义为一个模块时,ghc 明白它只是一个将被导入另一个文件的模块,因此它不会创建可执行文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.