首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在(WinGHCi)中运行源文件

在(WinGHCi)中运行源文件
EN

Stack Overflow用户
提问于 2014-12-25 03:43:31
回答 1查看 1.2K关注 0票数 5

我不知道如何让WinGHCi加载和编译我的.hs文件。

我有一个名为C:\Users\Haskell\Source\hello.hs的文件,它只包含以下一行:

代码语言:javascript
运行
复制
main = putStrLn "Hello, world!"

如果在Prelude>提示符下运行

代码语言:javascript
运行
复制
:cd C:\Users\Haskell\Source\

什么都没有发生,我认为这意味着命令成功了。但是,当我试图跑

代码语言:javascript
运行
复制
:load hello.hs

我得到了一条"1 /1编译主。好,模块加载:主“消息。然后,我的提示符从“前奏”改为"*Main“,我输入:

代码语言:javascript
运行
复制
ghc -o hello hello.hs

在此之后,我将看到一系列错误,讨论ghc、o、hello、hello和hs是如何“不在范围内”的。

我在正确的目录中。为什么我的程序不能运行?

我的问题之一是我无法导航目录。我知道:!dir列出了文件,我在正确的目录中,但是:load hello.hs仍然不能工作,而且我一直收到范围错误。

任何帮助都将不胜感激。

编辑:一个用户指出,如果我已经到达*主提示符,那么我的程序已经加载和编译,我不需要运行ghc命令。如果是这样的话,我该怎么做呢?Haskell.org声明,“然后您可以在Unix系统上运行可执行文件(./hello,在hello.exe上运行)”,但是还没有创建一个exe。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-25 03:51:33

我发现首先导航到目录,然后调用ghci更容易。一旦进入前奏,您就可以使用:l和文件名了。

或者,您可以加载ghci,然后使用:l并使用文件的完全限定路径。

编辑:在阅读了您的编辑之后,很明显您的代码编译得很好。一旦它说它已经编译了,就没有理由再用ghc来尝试了(我不认为您可以在ghci中这样做)。

现在已经编译好了,您可以使用其中定义的任何代码和数据类型。因此,要使用主函数,只需在main提示符处输入*Main>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27644049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档