Windows Haskell-GHC中的问题编译

Windows Haskell-GHC中的问题编译,windows,haskell,compilation,ghc,Windows,Haskell,Compilation,Ghc,我是Haskell的新手,最近安装了GHC平台。我决定编译一个简单的Hello world程序来测试它:main=putStrLn“Hello,world” 现在,当我进入命令行(Windows 7),找到合适的目录,并键入ghc hello.hs,它会返回以下消息:“[1/1]编译Main(hello.hs,hello.o)”。我知道一旦编译完成,它应该跟在“Linking hello.exe…”后面,但这永远不会出现,也不会生成.exe 基本上,有什么明显的原因可以解释为什么会发生这种情况?

我是Haskell的新手,最近安装了GHC平台。我决定编译一个简单的Hello world程序来测试它:
main=putStrLn“Hello,world”

现在,当我进入命令行(Windows 7),找到合适的目录,并键入
ghc hello.hs
,它会返回以下消息:“[1/1]编译Main(hello.hs,hello.o)”。我知道一旦编译完成,它应该跟在“Linking hello.exe…”后面,但这永远不会出现,也不会生成.exe

基本上,有什么明显的原因可以解释为什么会发生这种情况?代码有问题吗?有什么我不知道的吗?或者我应该试着重新安装Haskell平台吗


谢谢。

它是否生成了a.exe或a.out.exe或a.out文件?如果没有,那么你可以自己链接它
ld-o hello.exe hello.o
或平台上的任何链接命令。

我将使用
--make
选项,如
ghc--make hello.hs
中的选项。(如果您愿意,您实际上可以省略文件扩展名。)这将自动确定需要做什么,需要链接哪些包(如果有的话),一般来说,我会做你想做的一切。

我让ghc通过删除文件开头的模块声明将我的程序链接到一个可执行文件。

要清楚:你担心的是它没有生成hello.exe,还是因为它没有显示那一段文本?它是否实际生成可执行文件,并且该可执行文件是否按照指示执行?对不起,它不生成.exe。据我所知,它也不会生成.o或.hi文件。一旦创建这些文件,GHC通常会把它们放在哪里?在与.hs相同的目录中?是的,它通常是相同的目录。如果您有一个较旧的GHC,您可能需要
GHC--make hello.hs
。你们有什么版本的GHC<代码>ghc--版本如果您最近安装了它,我想应该是7.0.4。我在Win7上安装了7.0.3,
ghc hello.hs&&hello.exe
工作正常。按照上面的建议,尝试从命令行编译.hs仍然不起作用(它是7.0.4)。然而,当使用“openwith…”并选择ghc时,它似乎编译得很好。一切都在那里,并且.exe按预期运行。虽然我仍然有点恼火,如果我将来想使用选项,它在命令行中就不起作用了,但现在应该可以用了。谢谢大家的支持,我可以编译我的Hello.hs.*。您好,*.o和*.exe文件出现了,但是当我尝试运行Hello.exe时,cmd会一直运行,什么也不会发生……从ghc-7.0开始,
--make
是默认模式。OP有7.0.4版本,所以不再需要
--make
。是的,他们改变了它。另一个重要的变化是RTSOPT现在默认被禁用,所以如果你想运行一些东西,例如
+RTS-s
,你需要链接到
-RTSOPT
。是的,我知道RTSOPT已经改变了[尽管我无法说出我脑子里想的是哪个GHC版本]。但我不知道,制造。