Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/03/2008, à 23:59

Arkandias

Créer des nouveaux modules dans la librairie Ocaml.

Bonjour à tous.

Je suis passé à Ocaml il y a peu (je bricolais un petit peu en Caml-Light avant) et j'ai quelques problème pour compiler des nouveaux modules dans la librairie.

Je m'explique :

Je créer un fichier module.ml avec des instructions (type, val, exception...) et le fichier module.mli, que je compile avec ocamlopt -c module.mli module.ml et je récupère les fichiers modules.cmi et modules.cmx que je place (accompagnés des fichiers d'implémentation et d'interface) dans le répertoire de ma librairie standard Ocaml (/usr/lib/Ocaml/3.09.2/).

Puis je lance Ocaml.
Là Ocaml arrive à trouver mon module (la commande open Module n'échoue pas).
Par contre si je veux utiliser les fonctions définies dans mon module j'ai le droit à un :
" Reference to undefined global `Module' "

Idem si je compile mon module en byte-code.

Si quelqu'un a une idée... merci d'avance!

Hors ligne

#2 Le 11/03/2008, à 18:41

VincentPicard

Re : Créer des nouveaux modules dans la librairie Ocaml.

Bonjour,

Est-ce que ça marche si tu appelles ta fonction sous la syntaxe : module.fonction (équivalent de module__fonction en caml-light) ?


Vincent

Hors ligne

#3 Le 11/03/2008, à 19:07

Arkandias

Re : Créer des nouveaux modules dans la librairie Ocaml.

Non justement, c'est ce que j'aimerais faire, mais il me renvoie le message d'erreur (ci-dessus)...

Hors ligne

#4 Le 11/03/2008, à 20:00

VincentPicard

Re : Créer des nouveaux modules dans la librairie Ocaml.

Dans l'interpreteur ocaml tape d'abord la commande

#load "ton_module.cmx"
ou
#load "ta_bibliotheque.cma" pour une bibliothèque

Ce doit se passer c'est que Caml doit trouver l'interface de ta bibliotheque mais n'a pas les definitions des fonctions.

Pour compiler il faut également ajouter les fichiers de ta bibliothèque dans la ligne de commande.


Vincent

Hors ligne

#5 Le 11/03/2008, à 20:56

Arkandias

Re : Créer des nouveaux modules dans la librairie Ocaml.

Oki là ça marche (par contre je peux pas faire #load un fichier compilé en natif, la commande accepte que du byte-code, mais sa change rien pour moi).

Merci beaucoup!!

Hors ligne