我正在将我的程序编译为:ghc -Wall foo.hs
我得到了一些有用的警告:
foo.hs:14:1: Warning:
Top-level binding with no type signature: main :: IO ()
现在,如果我立即重新运行ghc -Wall foo.hs
,我就不会收到任何警告。如果我删除了中间文件foo.o
和foo.hi
,然后运行ghc -Wall foo.hs
,警告就会重新出现。
这是预期的行为吗?我可以这样做,所以警告总是显示而不必删除中间文件吗?
答案 0 :(得分:2)
如果编译结果(<cfset testQuery['ColumnA'][testQuery.currentrow] = key>
和.hi
)已经存在,那么GHC将不会重新编译.o
。 GHC仅在编译(或类型检查).hs
时发出警告。
也许您可以使用.hs
来强制重新编译。 (如果你只想进行类型检查,那么使用ghc -fforce-recomp foo.hs
的速度会更快,但有一些ghc -fforce-recomp -fno-code foo.hs
无法捕获的警告。)