2

Happstack をインストールして使用したいのですが、10 分もかからず、1 日中悩まされていました。最初に、私は Cabal と格闘しなければなりませんでしたが、最終的にはそれを削除し、新しいコピーをインストールして更新しました。

# I use Fedora 16... 
yum remove cabal-install
...
yum install cabal-install
...
cabal update
...
# I was told that a new version was available.
cabal install cabal-install
...
cabal install happstack-server

これらのコマンドはどれも失敗しませんでした (少なくとも、失敗したという印象はありませんでした)。

インストールが完了したので、 Crashcourse ガイドにある最初の簡単な例をビルドしてみることにしました。

私はそれを次のように書いています:

-- server.hs
module Main where

import Happstack.Server (nullConf, simpleHTTp, toResponse, ok)

main :: IO()
main = simpleHTTP nullConf $ ok "Hello World!"

次のコマンドラインを使用してGHCでコンパイルしようとすると:

ghc --make -threaded server.hs -o server 

次のエラーが表示されます。

server.hs:3:8:
    Could not find module `Happstack.Server':
      Use -v to see a list of the files searched for.

提案された-vオプションを使用すると、次のようになります。

Glasgow Haskell Compiler, Version 7.0.4, for Haskell 98, stage 2 booted by GHC version 7.0.4
Using binary package database: /usr/lib/ghc-7.0.4/package.conf.d/package.cache
wired-in package ghc-prim mapped to ghc-prim-0.2.0.0-6bf7b03ebc9c668817e4379b6796c0c2
wired-in package integer-gmp mapped to integer-gmp-0.2.0.3-4c5ab8b517f0b5d4ecf2153d5dfb7f41
wired-in package base mapped to base-4.3.1.0-4582a5bc64f22f03f6d960b4f15c981f
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-2.5.0.0-958de6d18727479331372229849ac6b8
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags: -static
*** Deleting temp files:
Deleting: 
*** Deleting temp dirs:
Deleting: 
ghc: no input files

正直なところ、私はそれを解釈するのに苦労しています。とにかく、私はグーグルに行く時だと思いました(再び!)それは私をこの同様の質問に導きました(これは厄介で、ちなみにあまり役に立ちません...)、GHCiにモジュールをロードしようとすることを提案しました。

私はそれを試してみましたが、驚いたことに、これはうまくいきます:

> :m Happstack.Server
> simpleHTTP nullConf $ ok "Hello World!"
> 
> ...MODULE LOADING INFORMATION HERE...

これと同様に:

> :l server
> main

どちらも実行し、本来の動作をします。

要するに、これは奇妙です。Cabal は面倒です。基本的な Haskell ツールセットの経験はあまりありません (まだ)。

誰でもこれを修正する方法について何か考えがありますか? 前もって感謝します!:)

4

1 に答える 1

1

通常は、独自の.cabalファイルを作成し、Cabal を使用してプロジェクトをビルドすることをお勧めします。すぐに始めて、実行可能ファイルまたはライブラリの にcabal init必ず追加happstack-serverしてください。build-depends

本当に を使用したい場合はghc --make、おそらくそれに似たものを渡してみてください-package happstack-server

于 2012-10-02T23:46:33.623 に答える