堆栈无法构建

时间:2016-09-24 19:21:20

标签: haskell haskell-stack

我正在尝试在这里学习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时,我得到了这个:

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文件:

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:          example@example.com
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

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您希望`示例模块成为可执行文件的一部分,请添加到本节

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

这一行:other-modules: Example

如果您希望它成为图书馆的一部分,请更改

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

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

然后看看cabal documentation