7

GHC 告诉我它有效,但它不会生成二进制文件。我不知道为什么

$  ls
total 8
-rw-r--r--  1 drewgross  staff   361B  9 Sep 01:21 MouseMove.hs
$  ghc MouseMove.hs
[1 of 1] Compiling MouseMove        ( MouseMove.hs, MouseMove.o )
$  echo $?
0
$  ls
total 32
-rw-r--r--  1 drewgross  staff   926B  9 Sep 01:29 MouseMove.hi
-rw-r--r--  1 drewgross  staff   361B  9 Sep 01:21 MouseMove.hs
-rw-r--r--  1 drewgross  staff   5.7K  9 Sep 01:29 MouseMove.o

这是我的 MouseMove.hs 文件:

{-# LANGUAGE ForeignFunctionInterface #-}
module MouseMove where

import Foreign
import Foreign.C.Types

import Control.Applicative

foreign import ccall "/System/Library/Frameworks/CoreGraphics.framework/Versions/A/Headers/CGRemoteOperation.h CGWarpMouseCursorPosition"
    c_warp :: CFloat -> CFloat -> IO CInt

main = print =<< (fromIntegral <$> c_warp 100 100)

我的 GHC 版本是

$  ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3

有任何想法吗?没有错误消息,我不知道该尝试什么。

4

1 回答 1

14

如果其中有一个命名的模块Main和一个命名的函数, GHC 将创建一个程序main。在你的情况下,你有main,但没有Main

从中删除module MouseMove标头MouseMove.hs,或传递-main-is MouseMove.main给 GHC。

于 2013-09-09T07:53:34.950 回答