Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cabal在Windows Server 2008上安装带64位OpenSSL LIB的HsOpenSSL_Windows_Haskell_Openssl - Fatal编程技术网

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

Cabal在Windows Server 2008上安装带64位OpenSSL LIB的HsOpenSSL,windows,haskell,openssl,Windows,Haskell,Openssl,我有一个haskell项目,我正试图在Windows 2008 64位上构建它。其中一个依赖项是HsOpenSSL(不要与hopenssl混淆)。根据GHC文档,为了使安装顺利进行,必须从这里安装openssl的二进制发行版:并在cabal安装过程中进行如下链接: cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win32/include" --extra-lib-dirs="c:/OpenSSL-Win32" 现在,当我尝试安

我有一个haskell项目,我正试图在Windows 2008 64位上构建它。其中一个依赖项是
HsOpenSSL
(不要与hopenssl混淆)。根据GHC文档,为了使安装顺利进行,必须从这里安装openssl的二进制发行版:并在cabal安装过程中进行如下链接:

cabal install HsOpenSSL --extra-include-dirs="c:/OpenSSL-Win32/include" --extra-lib-dirs="c:/OpenSSL-Win32"
现在,当我尝试安装64位二进制发行版并安装HsOpenSSL w/it时,问题就出现了

 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
install目录中删除此目录后,当链接到32位libs时,HsOpenSSL仍然可以正常安装。所以我认为这种差异似乎并不重要。所有这些问题,HsOpenSSL是否与openssl的64位libs兼容?我所做的有什么明显的错误吗


我使用的是Cygwin、cabal 1.18.0.2、ghc 7.6.3、openSSL 1.0.1e版

四年后,但我刚刚遇到了同样的问题,所以我想它仍然相关。 我下载了最新的Win64OpenSSL二进制文件,并在上手动克隆了HsOpenSSL repo,从而解决了这个问题。 然后我打开了HsOpenSSL.cabal文件,并将第94行从

Extra-Libraries: eay32 ssl
致:


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

您使用的是64位GHC吗?目前还没有原生的64位Haskell平台安装程序(这是罪魁祸首)。但是Windows有一个64位GHC:如果要链接64位库,需要一个64位GHC。@MikhailGlushenkov将Haskell平台当前移植到64位版本需要多少工作?我不介意参与其中。无论如何我都需要它。试着按照这里的步骤:这是我用来生成安装程序的过程。如果成功,请给我一个便笺或执行拉取请求。关于缺少的
ar
,您可能需要将
$GHC_DIR/mingw/bin
添加到
路径
。不幸的是,这对我的堆栈不起作用。仍然得到“丢失的C库”。还尝试了32位版本的OpenSSL。
Extra-Libraries: libeay32 ssleay32