2016-11-23 3 views
0

J'essaie de compiler un paquet source Haskell en tant que bibliothèque dynamique à utiliser avec le code OCaml. J'ai essayé d'utiliser l'option --enable-shared avec cabal install sur le fichier .cabal de la source, j'ai eu une erreur Perhaps you haven't installed the "dyn" libraries for package 'zeromq4-haskell-0.6.5'. Après un peu de googling, j'ai réalisé que les dépendances doivent aussi être compilées en tant que bibliothèques dynamiques. J'ai téléchargé le paquet source pour zeromq et j'ai essayé d'installer le paquet zeromq avec l'option --enable-shared. Cette fois, j'ai eu une erreur similaire avec l'une des dépendances de zeromq. J'ai essayé de le faire 4-5 fois et j'ai une erreur avec une dépendance différente à chaque niveau.Compilation de la source haskell en tant que bibliothèque dynamique

Est-ce que je fais une erreur ici? Comment puis-je obtenir toutes les dépendances à installer en tant que bibliothèques dynamiques?

Merci!

Répondre

1

Si vous voulez avoir généralement des bibliothèques partagées, vous pouvez activer en permanence dans votre .cabal/config:

shared: True 

Cependant, il n'affectera que les bibliothèques installées après cela, de sorte que vous pouvez purger toutes les bibliothèques et le démarrage à nouveau.

Si cela est juste un one-shot, vous pouvez créer un bac à sable cabale juste pour cette fin:

cd yourlib 
cabal sandbox init 
cabal install --enable-shared 

Le résultat sera dans le répertoire .cabal-sandbox.