我正在尝试在这里学习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
我做错了什么?
答案 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。