Je suis en train de créer une bibliothèque partagée à partir de Haskell code source.
J'ai essayé en suivant les instructions ici: http://weblog.haskell.cz/pivnik/building-a-shared-library-in-haskell/ mais je suis juste de ne pas avoir un peu de chance.
Quand je compile avec Haskell 64 bits (ghc 7.0.4 de 2011.4.0.0), je reçois le message d'erreur suivant:
ld: pointer in read-only segment not allowed in slidable image, used in
___gmpn_modexact_1c_odd
Comme une alternative, j'ai aussi essayé la version 32 bits, et selon la nature exacte de drapeaux-je utiliser pour relier des erreurs telles que:
Library not loaded: /usr/local/lib/ghc-7.0.4/base-4.3.1.0/libHSbase-4.3.1.0-ghc7.0.4.dylib
J'ai réussi à obtenir un peu plus loin en ajoutant -lHSrts à l'éditeur de liens ligne. Cela m'a fait le point de réussir à lier et le chargement de la bibliothèque, mais je suis alors incapable de trouver le nom de la fonction à l'aide de dlsym (ou manuellement à l'aide nm | grep)
Tous les conseils seraient grandement appréciés, un exemple de fichier de créer, ou de créer une ligne qui a construit avec succès (et utilisé) une bibliothèque partagée sur OS X serait appréciée. Je suis assez nouveau à Haskell et ne sais pas si je devrais continuer à se taper la tête en supposant que le problème est sur ma fin, ou, pour diverses raisons que je ne devrais pas attendre que cela fonctionne sur OS X.
Un repo git avec toutes les combinaisons que j'ai essayé est disponible ici: https://github.com/bennoleslie/haskell-shared-example j'ai réussi à obtenir quelque chose qui marche pour les 32 bits de ghc, mais pas en 64 bits encore.