cabal-dev安装Happstack-server如何

时间:2013-12-29 02:04:51

标签: haskell cabal-dev

这就是我所做的:

  1. makdir happstack_01

  2. cabal-dev install happstack-server

  3. 用“import Happstack.Server(nullConf,simpleHTTP,toResponse,ok)”编写典型的helloworld.hs“

  4. ghc -threaded HelloWorld.hs -o helloworld

  5. 我得到了: 找不到模块`Happstack.Server'

    这是如此明显的错误。但令我更惊讶的是,谷歌没有教程这么简单。

    任何直觉都会很棒!

3 个答案:

答案 0 :(得分:3)

既然你想要一个小教程,我正在写我是如何让它工作的。虽然我使用了cabal而不是cabal-dev(如果你关心,请告诉我,我可以玩一点)....

> cabal install happstack-server
> mkdir sample
> cd sample

然后我创建了文件sample.hs

import Happstack.Server

main = simpleHTTP nullConf $ return "hello, world!"

我编译了它

> ghc sample.hs

(这是你在寻找库时遇到问题....你可能想检查〜/ .ghc // package.conf.d / happstack-server-7.3.1-.conf和〜 /.cabal/packages/hackage.haskell.org/happstack-server/存在以验证下载)

然后运行服务器

./sample

并使用curl

验证其是否有效
> curl http://127.0.0.1:8000

这应该回复

hello, world!

答案 1 :(得分:3)

这是一组非常简单,Cabalized和沙盒构建的说明。

$ mkdir happstack01 && cd happstack01/
$ cabal init .
$ <CR><CR><CR><CR><CR><CR><CR><CR><CR>   1   <CR><CR><CR>
$ mkdir src
$ touch src/Main.hs
$ vi happstack-01.cabal

happstack01.cabal

...

library
  exposed-modules:
    Main
  build-depends:       base >=4.6 && <4.7
                     , happstack-server
  hs-source-dirs:      src
  default-language:    Haskell2010

然后

$ cabal sandbox init
$ cabal install --only-dependencies
$ vi src/Main.hs

src/Main.hs

import Happstack.Server

main :: IO ()
main = simpleHTTP nullConf $ return "Hello sandbox!"

在沙箱构建时喝点咖啡。

$ cabal repl
> main

在此之后,我通常会在Cabal文件中添加一个executable条目,然后开始构建服务器。

答案 2 :(得分:0)

好吧,我想通了。 GHC不会识别本地沙盒库。至少我的GHC - 版本7.6.3没有。因此,我必须将我的项目大写,以使沙盒库工作。