haskell - 如何使用cabal install 进行正则表达式包安装?
问题描述
我正在通过 Real World Haskell 工作,并试图通过简单地运行从 untar[ed] 包安装 regex-posix-0.95.2
cabal install
然后我看到:
Text/Regex/Posix/Wrap.hsc:141:1: error:
Could not find module ‘Text.Regex.Base.RegexLike’
There are files missing in the ‘regex-base-0.93.2’ package,
try running 'ghc-pkg check'.
Use -v to see a list of the files searched for.
|
141 | import Text.Regex.Base.RegexLike(RegexOptions(..),RegexMaker(..),RegexContext(..),MatchArray)
尽管我可以在 ghci 中加载它
Prelude> :module Text.Regex.Base.RegexLike
Prelude Text.Regex.Base.RegexLike>
Prelude> import Text.Regex.Base.RegexLike(RegexOptions(..),RegexMaker(..),RegexContext(..),MatchArray)
Prelude Text.Regex.Base.RegexLike>
并在模块系统中看到它。
[warrick@warrick-pc regex-posix-0.95.2]$ ghc-pkg find-module Text.Regex.Base.RegexLike
/usr/lib/ghc-8.6.2/package.conf.d
regex-base-0.93.2
为什么会失败?
在尝试调试 cabal 故障时,您会推荐哪些更一般的提示和技巧(因为这是我一直与 Cabal 一起遇到的许多问题的一个实例)?
解决方案
这是一个链接问题。例如,像 Arch 这样的一些发行版默认使用动态链接,没有静态库,但没有额外的配置,cabal 尝试静态链接,这会导致您看到的那种消息。欲了解更多信息:https ://wiki.archlinux.org/index.php/Haskell
推荐阅读
- c# - 为什么检查 if(a!=null) 时出现 Null 错误
- python - 使用python和linux在for循环中重命名文件
- excel - 1 / 0 Excel 中的稀疏矩阵
- node.js - 在 Angular 项目中实现蓝牙设备连接
- docker - 在 docker compose 中更新图像
- c++ - `++a=20;` 的意义何在?
- sequelize.js - 我可以只用 sequelize 同步我想要的表吗?
- javascript - 将数组与对象进行比较,如果对象已存在于该数组中,则通过删除该对象返回一个对象数组
- autodesk-forge - 在伪造查看器中单击背景时,我可以禁用重置选择吗?
- python-3.x - 在 csv 文件中的列之间切换