【发布时间】:2021-10-29 20:03:22
【问题描述】:
vector 模块已被“cabal install vector”安装
bash-3.2$ ghc-pkg list -f $HOME/.cabal/store/ghc-9.2.1/package.db
/Users/gcolpitts/.cabal/store/ghc-9.2.1/package.db
primitive-0.7.3.0
vector-0.12.3.1
但是编译器找不到:
$ ghc prob214ff.hs
[1 of 1] Compiling Main ( prob214ff.hs, prob214ff.o )
prob214ff.hs:14:1: error:
Could not find module ‘Data.Vector’
Perhaps you meant Data.Functor (from base-4.16.0.0)
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
|
14 | import Data.Vector
谢谢@n。 1.8e9-where's-my-share !
ghc -package-db $HOME/.cabal/store/ghc-9.2.1/package.db prob214ff.hs
解决了我的问题,虽然它是 ghc 以前版本的回归,不需要使用 -package-db 选项。
我很想使用 GHC_PACKAGE_PATH,但我不知道如何使用它。 ghc 用户指南的第 5.9.5 节令人困惑。它指出“包数据库是存储有关已安装包的详细信息的位置。它是一个目录,通常称为 package.conf.d。”即不是我在命令行上使用 -package-db 提供的 package.db 文件。但是包含我使用 cabal 安装的矢量包信息的 package.conf.db 目录在哪里?
"ghc-pkg list" 引用 /usr/local/lib/ghc-9.2.1/lib/package.conf.d 但命令的输出没有列出我安装的向量包。
"ghc-pkg list -f $HOME/.cabal/store/ghc-9.2.1/package.db" 确实在其输出中列出了矢量包,但没有告诉我 package.conf.d 目录了解矢量包。
【问题讨论】:
-
你可能没有告诉 ghc 那个 package.db 在哪里。试试
ghc -package-db <file>,或者使用GHC_PACKAGE_PATH,或者使用包环境……另见github.com/haskell/cabal/issues/6262 -
谢谢@n.1.8e9-where's-my-sharem !我的评论不合适,所以我改变了我的问题。我想也许我应该编辑整个内容以询问如何使用 GHC_PACKAGE_PATH。我必须使用它的事实似乎是一种回归,但我认为在这里讨论它没有任何意义。我应该提交一个关于那个的错误。
标签: haskell