堆栈无法建立
问题描述:
我想在这里学习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: [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
我是什么做错了?
答
如果你想你`实例模块可被执行的一部分,添加到本节
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。
'module Example()where'should read'module Example where或'module Example(get,getCode)where'。因为它是从'Example'输出什么都没有(你定义的任何类实例都会被导出,因为类的特殊工作方式。) – Michael
@Michael thanks!但是,这并不能解决问题。 – Comforse