2012-01-26 12 views
5

मैं OSX पर नवीनतम happstack-सर्वर स्थापित करने के लिए कोशिश कर रहा हूँ याद आ रही। उन्होंने अभी libcryptopp पर निर्भरता जोड़ा है, और मैं इसे काम नहीं कर सकता। macports साथ libcryptopp, जो/opt/में libcryptopp.a डालता स्थानीय/libस्थापित OSX पर happstack-सर्वर 6.5.3 - 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 

तो, तो मैं स्थापित

sudo port install libcryptopp 

तब मैं happstack-सर्वर फिर से --extra-लिब-dirs के साथ स्थापित

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

यह ठीक स्थापित करता है, सब कुछ काम करने के लिए लगता है जब तक मैं वास्तव में रन एक happstack सर्वर।

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

मैं क्या गलत कर रहा हूं? या यह खुशी के साथ एक बग है? मेरे पास मैकपोर्ट्स के माध्यम से lib स्थापित करने के बाद एक .dylib भी नहीं है, केवल एक। ए।

फ़ाइल: happstack-server.cabal:

Flag https 
    Default: False 

कॉन्फ़िगर/निर्माण/ghc --make Hello.hsis even crazier

+0

'Hello.hs' त्रुटियों शायद रहे हैं गलत 'iconv' लाइब्रेरी के कारण। मैं भूल जाता हूं, लेकिन मुझे लगता है कि सिस्टम हास्केल के साथ काम नहीं करता है, आपको मैकपोर्ट 'iconv' इंस्टॉल करने की आवश्यकता है। या दूसरी तरफ दौर। मैक एक गड़बड़ है क्योंकि पैकेज और स्थानों को स्थापित करने के कई अलग-अलग तरीके हैं, ऐसा लगता है। लेकिन अगर आपने इसे समझ लिया, तो मैंने सुना है कि यह अच्छी तरह से काम करता है। –

उत्तर

2

एक जानवर बल दृष्टिकोण के रूप में, आप happstack-server की .cabal फ़ाइल में https झंडा निष्क्रिय कर सकते हैं happstack-server मैन्युअल रूप से स्थापित करें, उन्हें cabal install happstack


(मैं Archlinux उपयोग करते हैं, --extra-लिब-dirs भी काम नहीं करते!)

+0

नोट मैंने वास्तव में यह कोशिश नहीं की, लेकिन मुझे लगता है कि यह काम करता है। मैं अनुप्रयोग सर्वर बंद बजाय :) –

+0

@Sean क्लार्क हेस: आप लिखने हैं, मैं 'कोशिश की happstack-server' 6.4 *, कि काम करता है।। :) – Nybble

7

कैसे के बारे में:

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

+0

धन्यवाद! क्रिप्टोप में समस्या को ठीक करने की कोशिश करने से यह बहुत बेहतर है फ़ाइलों को सीधे बनाते हैं! –