2016-09-24 9 views
1

私はここでhaskellを学びたいと思っています(理由を聞かないでください)、私はgithubからコピーされた非常に簡単なコードから始めます。スタックが作成されない

ように、コードはこれです:しかし

module Example() where 

import Network.HTTP 

-- Non HTTPS 

-- 1. Perform a basic HTTP get request and return the body 
get :: String -> IO String 
get url = simpleHTTP (getRequest url) >>= getResponseBody 

-- 2. Get the response code 
getCode :: String -> IO ResponseCode 
getCode url = simpleHTTP req >>= getResponseCode 
    where req = getRequest url 

、私はstack buildを実行したときに、私はこの取得:

name:    slack-client 
version:    0.1.0.0 
synopsis:   Initial project template from stack 
description:   Please see README.md 
homepage:   https://github.com/githubuser/slack-client#readme 
license:    BSD3 
license-file:  LICENSE 
author:    Author name here 
maintainer:   [email protected] 
copyright:   2016 Author name here 
category:   Web 
build-type:   Simple 
-- extra-source-files: 
cabal-version:  >=1.10 

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib 
    other-modules:  Example 
    build-depends:  base >= 4.7 && < 5 
    default-language: Haskell2010 

executable slack-client-exe 
    hs-source-dirs:  app 
    main-is:    Main.hs 
    other-modules:  Example 
    ghc-options:   -threaded -rtsopts -with-rtsopts=-N 
    build-depends:  base 
        , HTTP 
        , HTTP-Simple 
        , slack-client 
    default-language: Haskell2010 

test-suite slack-client-test 
    type:    exitcode-stdio-1.0 
    hs-source-dirs:  test 
    main-is:    Spec.hs 
    build-depends:  base 
        , HTTP-Simple 
        , slack-client 
    ghc-options:   -threaded -rtsopts -with-rtsopts=-N 
    default-language: Haskell2010 

source-repository head 
    type:  git 
    location: https://github.com/githubuser/slack-client 

私は何:

slack-client-0.1.0.0: build 
Preprocessing library slack-client-0.1.0.0... 
[2 of 2] Compiling Example   (src\Example.hs, .stack-work\dist\b7fec021\ 
build\Example.o) 

D:\haskell\slack-client\src\Example.hs:3:1: error: 
    Failed to load interface for `Network.HTTP' 
    It is a member of the hidden package `HTTP-4000.3.3'. 
    Perhaps you need to add `HTTP' to the build-depends in your .cabal file. 
    Use -v to see a list of the files searched for. 

-- While building package slack-client-0.1.0.0 using: 
     C:\Users\Mihai\AppData\Roaming\stack\setup-exe-cache\x86_64-windows\setup- 
Simple-Cabal-1.24.0.0-ghc-8.0.1.exe --builddir=.stack-work\dist\b7fec021 build l 
ib:slack-client exe:slack-client-exe --ghc-options " -ddump-hi -ddump-to-file" 
    Process exited with code: ExitFailure 1 

これは私の.cabalファイルです間違っている? other-modules: Example:あなたは `例のモジュールは、実行可能ファイルの一部で、このセクション

executable slack-client-exe 
    hs-source-dirs:  app 
    main-is:    Main.hs 

この行に追加したい場合は

+0

'モジュールの例()'は 'module Example where'または' module Example(get、getCode)where'を読みます。それはあなたが 'Example'から何もエクスポートしていないからです(あなたが定義したどんなクラスのインスタンスも、クラスが動作する特別な方法のためエクスポートされます)。 – Michael

+0

@Michael thanks!ただし、これで問題は解決されません。 – Comforse

答えて

1

あなたはそれがライブラリの一部になりたい場合は、

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib 

library 
    hs-source-dirs:  src 
    exposed-modules:  Lib, Example 

を変更し、cabal documentationを見てみましょう。

+0

すべてのオプションを試しましたが、同じエラーが発生しました。 '' stack build''以外のものを実行する必要がありますか? – Comforse

+0

'Example.hs'を' src'に移動し、 'slack-client-exe'についてスタンザから打ちましたか? 'Example'がそれを使用するので、' build-depends'に 'HTTP'を追加する必要があります。エラーメッセージはモジュール 'Network.HTTP'について知っていると言っていますが、' HTTP'ライブラリは言及されていないので、それを見ることはできません。 – Michael

関連する問題