繁体   English   中英

如何在Haskell中安装和导入库?

[英]How to install and import a library in haskell?

5步的官方教程Haskell中 ,示例导入了一个库:

import Control.Parallel

然后我用ghc编译:

ghc parallel.hs -o parallel -O2 --make -threaded -rtsopts

就像教程告诉我的那样。 (我的文件名是parallel.hs)但是我得到了:

parallel.hs:1:1: error:
Could not find module ‘Control.Parallel’
Use -v to see a list of the files searched for.
  |
1 | import Control.Parallel
  | ^^^^^^^^^^^^^^^^^^^^^^^

然后我用stackoverflowed它,找到这个问题 所以我:

cabal new-install parallel --lib

得到:

Resolving dependencies...
Up to date 

然后我再次编译它,但是遇到了同样的错误。 如何解决呢? 我是否错过任何命令行参数?


好了,在cabal install parallel ,库被导入,程序成功编译,并按预期运行。

我将参考cabal的文档,了解installnew-install之间的区别

正如@Lorenzo指出的那样, cabal install工作正常。 使用cabal new-install您应该已经看到警告,您忘记了--lib因为parallel不包含可执行文件,并且必须通过--lib显式安装库。 完整的功能命令集是:

cd $(mktemp -d)
cabal update && cabal new-install --lib parallel
cat <<EOF > parallel.hs
module P where
import Control.Parallel
EOF
ghc -c parallel.hs
ls parallel.o parallel.hi

产量:

% cd $(mktemp -d)
% cabal update && cabal new-install --lib parallel
... snipped output ...
% cat <<EOF > parallel.hs
module P where
import Control.Parallel
EOF
% ghc -c parallel.hs
Loaded package environment from /home/tommd/.ghc/x86_64-linux-8.6.4/environments/default
% ls parallel.o parallel.hi
parallel.hi  parallel.o

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM