我有一个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
答案 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
安装库。