在Cygwin上使用Haskell Stack的问题-缺少库pcre

时间:2019-09-26 19:49:04

标签: cygwin pcre haskell-stack

我在cygwin上运行堆栈版本2.1.3,x86_64 hpack-0.31.2。我尝试构建的Haskell项目需要使用regex-pcre-0.94.4,而这又需要pcre库。我得到的确切消息是:

$ stack build
regex-pcre> configure
regex-pcre> Configuring regex-pcre-0.94.4...
regex-pcre> Cabal-simple_Z6RU0evB_2.0.1.0_ghc-8.2.2.exe: Missing dependency 
on a foreign library:
regex-pcre> * Missing C library: pcre
regex-pcre> This problem can usually be solved by installing the system package that 
provides this library (you may need the "-dev" version). If the library is already 
installed but in a non-standard location then you can use the flags 
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.

似乎没有一种简便的方法来获取Windows的pcre二进制文件的相对较新版本(http://gnuwin32.sourceforge.net/packages/pcre.htm的二进制文件对于我来说太旧了)。有一段视频显示了如何从源代码构建二进制文件,但是在我走那条路线之前,https://github.com/dragokas/PCRE上有一些相对较新的预编译二进制文件,但是我不知道如何处理它们或将它们放置在何处。我开始想这看起来像是很多工作,我想知道这是否值得,或者我应该放弃在Windows中执行此操作的想法,而转向Linux。有什么想法或建议吗?

PS。我还注意到cygwin已经有一个pcre库(/bin/cygpcre2-16-0.dll)。但是,由于它看起来像一个16位库,因此我认为它将无法工作,而且我不确定如何告诉堆栈使用它。

1 个答案:

答案 0 :(得分:0)

Here我找到了答案:

regex-pcre不支持Windows,至少当前不支持Windows。 regex-pcre.cabal在Windows上无法正常运行。

尝试regex-pcre-builtin,它与regex-pcre相同,但是 PCRE来源捆绑在一起。我不知道为什么作者不合并它 放入regex-pcre,但为此创建了一个新程序包。

我只能在我的regex-pcre文件中将名称regex-pcre-builtin更改为.cabal(因为版本相同),该文件将使用堆栈构建安装依赖项。 (例如:./your-project-name.cabal