2009-10-14 3 views
3

пакет haskell 'openid' зависит от пакетов HsOpenSSL и nano-hmac, для которых требуется openssl. Я составил OpenSSL для MinGW в C: \ OpenSSL \ каталога и установленного пакет OpenId с помощью следующей команды:Как установить пакет haskell openid в windows

cabal install openid --extra-include-dirs=C:\OpenSSL\outinc --extra-lib-dirs=C:\OpenSSL\out 

Когда я пытаюсь скомпилировать программу Haskell с помощью этого пакета я получаю много ошибок, связывающие.

test.hs:

import Network.OpenID 

main = print "ok" 

ghc --make test.hs:

Linking test.exe ... 
C:\OpenSSL\out/libcrypto.a(m_sha1.o):m_sha1.c:(.text+0x60): multiple definition of `EVP_sha1' 
C:\OpenSSL\out/libeay32.a(deegs01228.o):(.text+0x0): first defined here 
C:\OpenSSL\out/libcrypto.a(m_sha1.o):m_sha1.c:(.text+0x100): multiple definition of `EVP_sha256' 
C:\OpenSSL\out/libeay32.a(deegs.o):(.text+0x0): first defined here 
..... 
C:\OpenSSL\out/libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x2d4): undefined reference to `X509_VERIFY_PARAM_set_purpose' 
C:\OpenSSL\out/libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x2f1): undefined reference to `X509_VERIFY_PARAM_set_purpose' 
C:\OpenSSL\out/libssl.a(ssl_lib.o):ssl_lib.c:(.text+0x314): undefined reference to `X509_VERIFY_PARAM_set_trust' 
..... 
collect2: ld returned 1 exit status 

Что я делаю неправильно?

ответ

1

Я подозреваю, что там может быть несоответствие версии. Попробуйте использовать скомпилированные двоичные файлы для OpenSSL здесь: http://www.openssl.org/related/binaries.html

Я был в состоянии получить инструкции здесь, чтобы работать с последней версией HsOpenSSL: http://hackage.haskell.org/trac/ghc/wiki/Builder (на самом деле я работал с сопровождающим, чтобы эти инструкции работают без необходимости патчить упаковка.)