2013-10-06 24 views
0

我剛剛安裝了Haskell平臺,而且ghci工作正常,但由於某種原因,我無法啓動ghc。它啓動後大約0.5秒後崩潰。Ghc無法正常啓動[Windows 7 64位]

在Haskell的平臺目錄,我有以下的 「GHC有關」 .EXE的: GHC ghc.pkg runghc

runghc.exe 「作品」,但這種情況發生的唯一事情是出現空白的黑色終端。

幫助!

+0

「啓動GHC」本身並不做任何事情。你需要從終端運行它並添加你想編譯的文件名。 – us2012

+0

因此,當我啓動runghc.exe時,它應該只是啓動一個空白終端?我只在Linux上使用過Haskell,你首先加載到ghc中,然後輸入「ghci」來運行ghci。但我沒有ghc終端,它只是ghci。 – user2851582

+0

我不知道你在說什麼Linux軟件包,但是如果我想在我的Linux系統上使用ghci,我只需要在控制檯輸入'ghci'。那麼,如果ghci適合你,那麼你的意思是「我不能啓動ghc」? – us2012

回答

1

從你的評論猜測,我會說你不太明白GHC是什麼,GHCi是什麼。 GHC是格拉斯哥Haskell編譯器。它所做的只是將Haskell代碼編譯爲可執行文件。 GHCi是交互式的GHC,它可以讓你鍵入代碼並逐行編譯。您可以通過從命令行運行ghci來啓動GHCi,但在運行ghc時,必須傳遞更多參數才能使其執行任何操作。

例如,如果我有文件HelloWorld.hsC:\projects\haskell中,與具有內容

HelloWorld.hs
module Main where 

sayHello :: String -> String 
sayHello name = "Hello, " ++ name ++ "!" 

main :: IO() 
main = do 
    putStrLn "What is your name?" 
    name <- getLine 
    putStrLn $ sayHello name 

我可以打開命令線(>指示提示,它不是部分命令),然後運行

> cd C:\projects\haskell 
> ghc --make HelloWorld.hs -o hello.exe 
> hello.exe 
What is your name? 
bheklilr 
Hello, bheklilr! 

我也可以做類似

> cd C:\projects\haskell 
> ghci 
Loading package ghc-prim ... linking ... done. 
Loading package integer-gmp ... linking ... done. 
Loading package base ... linking ... done. 
Prelude> :load HelloWorld.hs 
Ok, modules loaded: Main 
*Main> 

從哪個點我可以做這樣的事情

*Main> sayHello "World" 
"Hello, World!" 
*Main> sayHello $ sayHello "World" 
"Hello, Hello, World!!" 
*Main> :main 
What is your name? 
bheklilr 
Hello, bheklilr!