2012-01-26 10 views
5

En yeni happstack sunucusunu osx üzerinde yüklemeye çalışıyorum. Sadece libcryptopp'a bağımlılık eklediler ve bunu işe alamıyorum./Opt/lib/yerel libcryptopp.a koyar MacPorts ileOssta yüklenemedi 6.5.3 üzerine ossta - eksik libcryptopp

~$ cabal install happstack-server 
Resolving dependencies... 
Configuring happstack-server-6.5.3... 
cabal: Missing dependency on a foreign library: 
* Missing C library: cryptopp 
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: Error: some packages failed to install: 
happstack-server-6.5.3 failed during the configure step. The exception was: 
ExitFailure 1 

Yani, o zaman yüklemek libcryptopp,

sudo port install libcryptopp 

Sonra --extra-lib-dirs ile tekrar happstack sunucusu yüklemek

cabal install happstack-server --extra-lib-dirs=/opt/local/lib 

Bu ince yükler, her şey iş gibi görünüyor aslında koşmak bir happstack sunucusuna kadar.

~$ runhaskell Hello.hs 
Hello.hs: <command line>: can't load .so/.DLL for: libcryptopp.dylib (dlopen(libcryptopp.dylib, 9): image not found) 

Neyi yanlış yapıyorum? Ya da bu happstack ile bir böcek mi? Mac'yi macports ile yükledikten sonra bir .dylib'im bile yok, sadece bir .a.

dosya: happstack-server.cabal:

Flag https 
    Default: False 

yapılandırmak/build/kaba kuvvet yaklaşım olarak is even crazier

+0

hataları muhtemelen 'Hello.hs' Yanlış 'iconv' kütüphanesi nedeniyle. Hangisini unutmaya devam ediyorum, ama sistemin Haskell ile çalışmadığını düşünüyorum, 'iconv' macport'larını yüklemeniz gerekiyor. Ya da başka bir yol. Mac biraz karışıklık çünkü paketler ve gittikleri yerler kurmak için pek çok farklı yol var gibi görünüyor. Ama bunu anladıysan, iyi çalıştığını duydum. –

cevap

2

ghc --make Hello.hs, Sen happstack-server ait .cabal dosyasında https işaretini devre dışı bırakabilirler happstack-server'u elle yükleyin, bunlar cabal install happstack.


(! Ben Arch Linux kullanmak, --extra-lib-dirs bile işe yaramayan)

+0

Not Bunu gerçekten denemedim, ancak çalıştığını varsayalım. Bunun yerine uygulama sunucularını değiştirdim :) –

+0

@Sean Clark Hess: Yazıyorsun, ben happstack-server'ı denedim 6.4. *, Bu işe yarıyor. :) – Nybble

7

ne dersiniz:

g++ -fpic -nostartfiles -nostdlib -shared /usr/local/Cellar/cryptopp/5.6.1/lib/libcryptopp.a -o libcryptopp.dylib

+0

Teşekkürler! Bu kriptopp doğrudan dosyaları yapmak sorunu çözmeye çalışmaktan çok daha iyi! –