Scroll to navigation

OCAMLC(1) General Commands Manual OCAMLC(1)

NOM

ocamlc - Le compilateur bytecode d'Objective Caml

SYNOPSIS

ocamlc [ -aciv ] [ -cclib libname ] [ -ccopt option ] [ -custom ] [ -unsafe ] [ -o exec-file ] [ -I lib-dir ] filename ...

ocamlc.opt (same options)

DESCRIPTION

Le compilateur bytecode d'Objective Caml ocamlc(1) compile des fichiers sources en Caml et crée des fichiers objets de bytecode puis lie ces fichiers d'exécution pour produire des dossiers exécutables de bytecode autonome. Ces exécutables seront alors lancés par l'interpréteur de bytecode ocamlrun(1).

La commande ocamlc(1) a une ligne de commande d'interface semblable à celle de la plupart des compilateurs C. Elle accepte plusieurs types d'arguments et procède alors séquentiellement :

Les arguments finissant par .mli sont utilisés pour être des fichiers sources pour des interfaces de compilation. Les interfaces spécifient les noms exportés lors des compilations : ils déclarent des noms de valeur avec leurs types, définissent les types de données publics, déclarent les types de données abstraits, et ainsi de suite. À partir du fichier x.mli, le compilateur ocamlc(1) produit une interface compilée dans le fichier x.cmi.

Les arguments finissant par .ml sont utilisés pour être des fichiers sources pour l'implémentation lors de la compilation. Les implémentations produisent des définitions pour les noms exportés par le "unit" (à peu près le même rôle que void en C), et contiennent également des expressions qui devront être évaluées pour leurs effets secondaires. À partir du fichier x.ml, le compilateur ocamlc(1) produit de l'objet bytecode dans un fichier x.cmo.

Si le fichier d'interface x.mli existe, l'implémentation x.ml est vérifiée avec l'interface compilée correspondante à x.cmi, en supposant qu'il existe. Si aucune interface x.mli n' est fournie, la compilation de x.ml produit un fichier d'interface compilé x.cmi en plus du fichier objet compilé x.cmo. Le fichier x.cmi produit, correspond à une interface qui exporte tout ce qui est défini dans l'implémentation de x.ml.

Les arguments finissant par .cmo sont utilisés pour être compilés avec le bytecode objet. Ces fichiers sont liés ensemble, avec les fichiers objets obtenus en compilant les arguments .ml (s'il y en a), et avec la bibliothèque standard de Caml Light afin de produire un fichier exécutable autonome. L'ordre dans lequel les arguments .cmo et .ml sont présentés sur la ligne de commande est essentiel: la compilation est initialisée dans l'ordre d'exécution, et c'est un lien à temps réel qu'utilise le unit avant de l'initialiser. C'est pourquoi un fichier donné x.cmo doit venir avant tous les fichiers de .cmo qui se rapportent au module x.

Les arguments finissant par .cma sont utilisés pour être bliothèques es d'objet bytecode. Une bibliothèque d'objet bytecode regroupe en un seul fichier les fichiers objets bytecode (fichiers .cmo). Ces bibliothèques sont créées avec ocamlc -a (voir la description de l'option -a
ci-dessous). Les fichiers objets contenus dans la bibliothèque sont liés comme des fichiers classique .cmo (voir ci-dessus), dans l'ordre spécifié lorsque le .cma a été construit. La seule différence est que si un fichier objet contenu dans une bibliothèque n'est pas référencé n'importe où dans le programme, alors il n'est pas lié.

Les arguments finissant par .c sont passés au compilateur C avec généralement des fichiers objets .o . Ce fichier objet est lié dans le programme si l'argument -custom est précisé (voir la description de -custom ci-dessous).

Les arguments finissant par .o ou .a sont utilisés comme fichiers objets C et bibliothèques C. Ils sont passés à l'éditeur de liens de C en liant avec le mode donné par : -custom mode (voir la description de -custom ci-dessous).

ocamlc.opt est le même compilateur qu' ocamlc, mais compilé avec le code natif du compilateur ocamlopt(1). Ainsi, il se comporte exactement comme ocamlc, mais compile plus rapidement. ocamlc.opt n'est pas disponible dans toutes les installations d'Objective Caml.

OPTIONS

Les options de ligne de commande suivante sont identifiées par ocamlc(1).

Construit une bibliothèque (fichier .cma) avec les fichiers objets (fichiers .cmo) donnés sur la ligne de commande au lieu de les lier dans un fichier exécutable. Le nom de la bibliothèque peut être initialisé avec l'option -o option. Par défaut, le nom est library.cma.
Compile uniquement. Supprimer la phase de liens de la compilation. Les fichiers de code source sont transformés en fichiers compilés, mais aucun fichier exécutable n'est créé. L'option useful compile les modules séparément.
passe l'option -llibname à l'éditeur de liens C en mode ``custom runtime'' (voir l'option -custom ). Ceci implique que la bibliothèque de C soit fournie avec le programme.
Passe l'option donnée au compilateur C et à l'éditeur de liens C en mode « custom runtime » (voir l'option -custom ). Par exemple, -ccopt -L dir fait recherche le liens C de ses bibliothèques dans le répertoire dir.
Lier en mode ``custom runtime''. Par défaut dans le mode lié, l'éditeur de liens produit le bytecode qui est prévu pour être exécuté avec le système d'exécution partagé, ocamlrun(1).Enmodecustom runtime,l'éditeurdeliensproduitunfichierdesortiequicontientlesystèmed'exécutionetlebytecodepourleprogramme.Lefichierobtenuestplusgrand,maisilpeutêtreexécutédirectement,mêmesilacommande ocamlrun(1) n'est pas installée. D'ailleurs, le mode ``custom runtime'' lie le code Caml avec des fonctions définies pour l'utilisateur de C.
Indique au compilateur d'afficher tous les noms définis (avec leurs types impliqués ou avec leurs définitions) en compilant une implémentation (fichiers .ml). Ceci peut être utile pour vérifier les types impliqués par le compilateur. En outre, puisque la sortie suit la syntaxe des interfaces, il peut aider en écrivant une interface explicite (fichiers .mli) dans un fichier : réorienter (">") juste le rendement standard du compilateur à un fichier .mli
Ajoute le répertoire donné à la liste des répertoires de recherche pour compiler les fichiers d'interface (.cmi) et compiler les fichiers codés objets (.cmo). Par défaut, le répertoire courant est la première recherche, puis le répertoire de la bibliothèque standard. Les répertoires ajouté avec -I sont parcourus après le répertoire courant, dans l'ordre dans lequel ils sont donnés sur la ligne de commande, mais avant la bibliothèque standard.
Spécifie le nom du fichier de sortie produit par l'éditeur de liens. Le nom de la sortie par défaut est a.out, en gardant les traditions Unix. Si l'option -a est donnée, ceci spécifie le nom de la bibliothèque produite.
Affiche le numéro de version du compilateur.
Désactive la vérification des accès aux tableaux et chaînes de caractères (les constructeurs v.(i) et s.[i] ). Les programmes compilés avec -unsafe sont légèrement plus rapidement, mais peu surs : quelque chose peut se produire si le programme accède à un tableau ou à un mot en dehors de de ses limites.

VOIR AUSSI

ocaml(1), ocamlrun(1), ocamlobjinfo(1), ocamldumpobj(1)
Le manuel d'utilisation Objective Caml user's manual , chapitre "Batch compilation".

TRADUCTION

Ce document est une traduction, réalisée par Velleine Jerome, velleine.jerome@wanadoo.fr, le 18/04/07.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité.

La version anglaise la plus à jour de ce document est toujours consultable via la commande : LANGUAGE=en man ocaml.

N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.