我使用的是MinGW + MSYS,
我已经添加了额外的包含dirs,extra-lib-dirs,但似乎没有什么能帮助cabal找到pcre库。以下是我尝试过的一些命令行,以及它下面的一些示例输出。
cabal install pcre-light --extra-include-dirs='C:\Program Files (x86)\GnuWin32\include' --extra-lib-dirs='C:\Program Files (x86)\GnuWin32\lib'
cabal install pcre-light --extra-include-dirs='/C/Program Files (x86)/GnuWin32/include' --extra-lib-dirs='/C/Program Files (x86)/GnuWin32/lib'
cabal install pcre-light --extra-include-dirs="/C/Program Files (x86)/GnuWin32/include" --extra-lib-dirs="/C/Program Files (x86)/GnuWin32/lib"
我不断得到以下几点:
Resolving dependencies...
Notice: installing into a sandbox located at C:\Users\user\src\DBSite\dbsite\.cabal-sandbox
Configuring pcre-light-0.4.0.3...
Failed to install pcre-light-0.4.0.3
Last 10 lines of the build log ( C:\Users\user\src\DBSite\dbsite\.cabal-sandbox\logs\pcre-light-0.4.0.3.log ):
[1 of 1] Compiling Main ( C:\Users\user\AppData\Local\Temp\pcre-light-0.4.0.3-9072\pcre-light-0.4.0.3\dist\dist-sandbox-6710ae14\setup\setup.hs, C:\Users\user\AppData\Local\Temp\pcre-light-0.4.0.3-9072\pcre-light-0.4.0.3\dist\dist-sandbox-6710ae14\setup\Main.o )
Linking C:\Users\user\AppData\Local\Temp\pcre-light-0.4.0.3-9072\pcre-light-0.4.0.3\dist/dist-sandbox-6710ae14\setup\setup.exe ...
Configuring pcre-light-0.4.0.3...
setup.exe: Missing dependency on a foreign library:
* Missing C library: 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.
cabal.exe: Error: some packages failed to install:
pcre-light-0.4.0.3 failed during the configure step. The exception was:
ExitFailure 1
答案 0 :(得分:7)
我真的需要回答这个问题,因为我想很多人都会受此影响。请清楚我的系统规格:Windows 7 64位,GHC 7.8.3 64位,cabal 1.20.0.3
可能的失败原因:
如果你的GHC是32位,你只需删除上面命令中的\\ x64
如果可能的话,我会尝试将文件合并到其中的pcre-light包中。 祝你好运
答案 1 :(得分:2)
如果您执行以下操作,现在在Windows上安装pcre-light
要容易得多:
pcre
(适用于32位Windows)或pacman -S mingw-w64-i686-pcre
(适用于64位Windows)安装pacman -S mingw-w64-x86_64-pcre
软件包。cabal install pcre-light-0.4.0.4
安装pcre-light-0.4.0.4
或更高版本。 (早期版本不会自动配置额外的依赖项,这需要您手动设置--extra-lib-dirs
和--extra-include-dirs
标志。)就是这样!
答案 2 :(得分:0)
我遇到了同样的问题。我下载了Haskell-Platform 32位(编写本文时为7.10版本),并从gnuwin project on sourceforge
解压缩pcre-7.0-lib.zip
cabal install pcre-light --extra-include-dirs=C:\temp\pcre-7.0-lib\include --extra-lib-dirs=C:\temp\pcre-7.0-lib\lib
所以,我做了没有转义反斜杠,我也没有引用字符串。我也没有重命名zipfile中的内容。
我应该提到它是从cmder - shell执行的,它在路径中添加了一些unix工具。使用普通的cmd.exe,我会收到警告,因为需要Cygwin或MinGW / MSYS。