我在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位库,因此我认为它将无法工作,而且我不确定如何告诉堆栈使用它。
答案 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
)