我遇到了这个命令序列的问题:
wget http://hackage.haskell.org/package/github-0.7.1/github-0.7.1.tar.gz
tar zxf github-0.7.1.tar.gz
cd github-0.7.1
ghci samples/Users/ShowUser.hs
我得到的错误是:
Github/Private.hs:142:0:
error: missing binary operator before token "("
Github/Private.hs:148:0:
error: missing binary operator before token "("
phase `C pre-processor' failed (exitcode = 1)
那是因为模块 Github/Private.hscpp
在两个地方使用了指令:
#if MIN_VERSION_http_conduit(1, 9, 0)
successOrMissing s@(Status sci _) hs cookiejar
#else
successOrMissing s@(Status sci _) hs
#endif
| (200 <= sci && sci < 300) || sci == 404 = Nothing
#if MIN_VERSION_http_conduit(1, 9, 0)
| otherwise = Just $ E.toException $ StatusCodeException s hs cookiejar
#else
| otherwise = Just $ E.toException $ StatusCodeException s hs
#endif
这些 CPP 指令似乎ghci
令人窒息。但是,cabal install
成功编译并安装了该软件包。使用ghci -XCPP
没有帮助。
我的问题是:如何使用该包目录中的库代码运行示例程序(即samples
目录中的示例程序) ?ghci
Github
我想尝试调整示例程序和库代码,所以我想在ghci
.
有效的一件事是:
cabal install
cd samples
ghci Users/ShowUser.hs
但是,再一次,我宁愿不必为了测试它而安装库代码。