Я пытаюсь установить последний сервер happstack на OSX. Они только что добавили зависимость от 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
Итак, затем я устанавливаю libcryptopp с macports, что помещает libcryptopp.a в /opt/local/lib
sudo port install libcryptopp
Затем я снова устанавливаю happstack-server с --extra-lib-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)
Что я делаю не так? Или это баг с хаппстеком? У меня даже нет .dylib после установки lib через macports, только .a. ghc --make Hello.hs
ещё безумнее
Hello.hs
, вероятно, связаны с неправильной библиотекойiconv
. Я все время забываю какой, но я думаю, что системный не работает с Haskell, вам нужно установить macportsiconv
. Или наоборот. Mac — это немного беспорядок, потому что кажется, что существует так много разных способов установки пакетов и мест, куда они идут. Но если вы поняли это, я слышал, что это работает прекрасно. - person Daniel Fischer   schedule 26.01.2012