3

我是haskell的新手。我正在使用堆栈来安装一个名为小鸭的库。在 github 上,作者要求使用堆栈安装小鸭。我已经安装了堆栈并参考了 github 页面以安装小鸭的 github 链接

步骤 - 安装的第 1 步 - $stack build 在这一步中,我收到一个缺少 C 库的错误:pcre

我试图解决这个问题,但我无法弄清楚该怎么做。我做了几件事,比如从 pcre.org 下载 pcre-8.42 并将文件提取到 pcre-8.42 文件夹中。我不知道如何从这里解决。

请帮助我,我几乎花了 4-5 个小时在这上面,但我无处可去。

在此处输入图像描述

在此处输入图像描述

谢谢,尼尔

4

2 回答 2

3

欢迎来到 Unix C 标头地狱。

与太多的 Haskell 库和可执行文件一样,Duckling 依赖于拥有一套完整的 Unix C 库。PCRE,Perl 兼容的正则表达式库是大多数 Unix 构建的标准,但需要在 Microsoft Windows 上手动安装。

但是,事情是这样的:PCRE 然后依赖于一堆在 Unix 中也总是存在的其他工具,例如makegccC 头文件等......

为了在 Microsoft Windows 上构建 Duckling,您将需要使用其中一个工具,这些工具提供了一个类似 Unix 的环境,GHC 可以在其中运行。

我看到您已经发现了 MSys 并在其中安装了 PCRE。下一步是stack在这个类 Unix 环境中运行,以便它的 ghc 版本可以找到它需要的所有库。我的经验是,这通常意味着从 MSys bash 提示符重新安装堆栈——或者至少将 stack.exe 文件重新定位到/usr/local/bin目录,然后从 MSys bash 提示符而不是窗口命令提示符运行堆栈命令。

如果这不起作用,请尝试询问有关如何在 Windows 上使用 Unix 头文件运行堆栈或搜索有关该主题的其他问题的新问题。

于 2018-08-16T14:58:26.653 回答
2

打开duckling.cabal文件并用regex-pcre-builtin替换regex-pcre 小鸭.cabal 的 git diff

见这里:http ://hackage.haskell.org/package/regex-pcre-builtin

现在stack build应该成功完成

于 2019-01-09T17:22:34.687 回答