Cabal在Windows Server 2008上安装带有64位OpenSSL库的HsOpenSSL

时间:2013-12-17 02:09:07

标签: windows haskell openssl

我有一个haskell项目,我正在尝试在Windows 2008 64位上构建。其中一个依赖项是HsOpenSSL(不要混淆w / hopenssl)。根据GHC文档,为了使此安装顺利进行,必须从此处安装openssl的二进制分发版:http://slproweb.com/products/Win32OpenSSL.html并在cabal安装过程中链接如下:

cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win32/include" --extra-lib-dirs="c:/OpenSSL-Win32"

现在当我尝试安装64位二进制发行版并安装HsOpenSSL时会出现问题。

 cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win64/include" --extra-lib-dirs="c:/OpenSSL-Win64"

这仍然会引发错误:

Resolving dependencies...
Configuring HsOpenSSL-0.10.3.5...
cabal.exe: Missing dependencies on foreign libraries:
* Missing C libraries: eay32, ssl32
This problem can usually be solved by installing the system packages that
provide these libraries (you may need the "-dev" versions). If the libraries
are already installed but in a non-standard location then you can use the
flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
Failed to install HsOpenSSL-0.10.3.5
cabal.exe: Error: some packages failed to install:
HsOpenSSL-0.10.3.5 failed during the configure step. The exception was:
ExitFailure 1

在检查目录(OpenSSL-Win32和OpenSSL-Win64)之后,目录显然完全相同,只有一个小区别。 OpenSSL-Win64/libs/中没有MinGW文件夹,但OpenSSL-Win32/libs/中有一个。从OpenSSL-Win32安装目录中删除此目录后,HsOpenSSL在与32位库链接时仍然可以正常安装。所以我不认为这种差异似乎很重要。所有要问的问题, HsOpenSSL是否与openssl的64位库兼容?我正在做的事情有什么明显的错误吗?

我正在使用Cygwin,cabal 1.18.0.2,ghc 7.6.3,openSSL version 1.0.1e

1 个答案:

答案 0 :(得分:0)

这是四年之后,但我刚遇到同样的问题,所以我猜它仍然相关。 我通过下载最新的Win64OpenSSL二进制文件并在https://github.com/vshabanov/HsOpenSSL手动克隆HsOpenSSL存储库来解决它。 然后我打开了HsOpenSSL.cabal文件,并从

更改了第94行
Extra-Libraries: eay32 ssl

为:

Extra-Libraries: libeay32 ssleay32

最后,打开cmd并使repo成为当前目录。然后使用cabal configure --extra-include-dirs="c:/OpenSSL-Win64/include" --extra-lib-dirs="c:/OpenSSL-Win64/lib"cabal install安装库。