TLIB.EXE, le gestionnaire de bibliothèques

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilitaires de ligne de commande - Index

TLIB est un utilitaire qui gère les bibliothèques de fichiers .OBJ (modules objet). Une bibliothèque permet de manipuler facilement un collection de modules objet comme une unité.

Les bibliothèques fournies avec le compilateur C++Builder ont été construites avec TLIB. Vous pouvez utiliser TLIB pour construire vos propres bibliothèques ou pour modifier les bibliothèques C++Builder, vos bibliothèques, les bibliothèques fournies par d'autres programmeurs ou des bibliothèques que vous avez achetées.

Quand TLIB modifie une bibliothèque existante, TLIB crée une copie de la bibliothèque originale et lui attribue l'extension .BAK.

Vous pouvez utiliser TLIB pour :

  • Créer une nouvelle bibliothèque à partir d'un groupe de modules objet.
  • Ajouter des modules objet ou d'autres bibliothèques à une bibliothèque existante.
  • Retirer des modules objet d'une bibliothèque existante.
  • Remplacer des modules objet d'une bibliothèque existante.
  • Extraire des modules objet d'une bibliothèque existante.
  • Lister le contenu d'une nouvelle bibliothèque ou d'une bibliothèque existante.

TLIB peut aussi créer (et inclure dans le fichier de bibliothèque) un dictionnaire étendu qui pourra être utilisé pour accélérer la liaison.

Bien que TLIB ne soit pas essentiel pour la création de programmes exécutables avec le compilateur BCC32.EXE, il s'agit d'un outil de productivité en programmation qui est utile et peut même devenir indispensable pour les projets de développement importants.


Syntaxe de la ligne de commande

TLIB <libname> [<options>] [<operations>] [@<respfile>] [, <listfile>] 


Eléments de la ligne de commande

Les éléments suivants peuvent être utilisés dans les lignes de commande TLIB :

Elément Description
<libname>

<libname> représente le nom du chemin de la bibliothèque à créer ou à gérer. <libname> doit être spécifié.
Les caractères génériques ne sont pas autorisés. Si aucune extension n'est spécifiée, TLIB utilise l'extension .LIB.
Utilisez seulement l'extension .LIB, car BCC32 et l'EDI ont tous deux besoin de cette extension pour reconnaître les fichiers de bibliothèque.
Remarque : Si, dans le cas d'opérations d'ajout, la bibliothèque désignée n'existe pas, TLIB la crée.

<options>

TLIB accepte les options de ligne de commande générales suivantes : /C, /L, /P, /O, /N, /0 et /8 et les options d'action par défaut /a, /d, /e, /u et /x. Une option d'action par défaut spécifie une action qui est appliquée pour chaque module n'ayant pas une commande explicite spécifiée. Les options d'action par défaut vous permettent de spécifier des modules dans une commande TLIB sans avoir à préfixer chaque module par un symbole d'action.

<operations>

Décrit les commandes à faire exécuter par TLIB avec les modules spécifiés. Chaque commande est composée d'une séquence de codes d'opération à un ou deux caractères, et d'un nom de fichier ou de module :

<symbol> modulename

Si vous voulez seulement examiner le contenu de la bibliothèque, ne spécifiez pas de commandes. Pour de plus amples informations, voir Opérations ci-après dans cette rubrique.

@<respfile>

<respfile> représente le chemin et le nom du fichier de réponse à inclure. Vous pouvez spécifier plusieurs fichiers de réponse. Pour de plus amples informations, voir Fichiers de réponse ci-après dans cette rubrique.

<listfile>

<listfile> représente le nom du fichier texte produit par TLIB et listant le contenu de la bibliothèque. Le nom <listfile> (s'il est spécifié) doit être précédé d'une virgule. Aucun listage n'est produit si vous ne spécifiez pas de nom de fichier. Le listage est une liste alphabétique de chaque module. L'entrée de chaque module contient une liste alphabétique de tous les symboles publics définis dans ce module. L'extension par défaut pour le fichier de listage est .LST.

Pour afficher l'aide de la ligne de commande, entrez :

tlib

ou

tlib -?

Options de ligne de commande générales

TLIB reconnaît les options de commande générales suivantes :

Options de commande générales de TLIB

Option Description

/PSIZE

Définit la taille de page de la bibliothèque sur SIZE pour créer une grande bibliothèque.

La taille de page de la bibliothèque détermine la taille maximale combinée de tous les modules objet de la bibliothèque qui ne peut excéder 65 536 pages. La taille de page par défaut (c'est la valeur minimale autorisée) de 16 octets permet donc une bibliothèque d'environ 1 Mo. Pour créer une bibliothèque plus grande, utilisez l'option /PSIZE pour accroître la taille de page à SIZE. La taille de page doit être une puissance de 2 et ne doit pas être inférieure à 16 ni supérieure à 32 768.

Tous les modules de la bibliothèque doivent commencer sur une limite de page. Par exemple, dans une bibliothèque dont la taille de page est 32 (c'est-à-dire la taille de page immédiatement supérieure à la valeur par défaut 16), 16 octets environ par module objet sont perdus dans le remplissage. Si vous tentez de créer une bibliothèque trop grande pour la taille de page spécifiée, TLIB affiche un message d'erreur et suggère d'utiliser l'option /PSIZE avec la taille de page immédiatement supérieure.

/L

Ecrit le fichier de listage <listfile> dans la sortie standard stdout.

/N

Désactive le support de la syntaxe de commande.

/O

Active le support de la syntaxe de commande.

/0

Purge les enregistrements de commentaire.

/8

Affiche les avertissements et les messages encodés en UTF8.

/C

Permet d'utiliser les symboles sensibles à la casse dans une bibliothèque. Cette option n'est pas normalement utilisée.

Quand vous ajoutez un module à une bibliothèque, TLIB maintient un dictionnaire de tous les symboles publics définis dans les modules de la bibliothèque. Tous les symboles de la bibliothèque doivent être différents. Si vous tentez d'ajouter à la bibliothèque un module qui porte le même nom qu'un symbole, TLIB affiche un message d'erreur et n'ajoute pas ce module.

Normalement, quand TLIB vérifie la présence de symboles en double dans la bibliothèque, les lettres majuscules et minuscules ne sont pas traitées différemment. Par exemple, les symboles lookup et LOOKUP sont traités comme des symboles en double. Vous pouvez utiliser l'option /C pour ajouter à une bibliothèque un module incluant des symboles ne différant que par la casse.

N'utilisez pas /C si vous prévoyez d'utiliser la bibliothèque avec d'autres lieurs ou de permettre à d'autres personnes d'utiliser la bibliothèque.

TLIB rejette normalement les symboles qui ne diffèrent que par la casse, car certains lieurs ne sont pas sensibles à la casse. ILINK32 peut parfaitement distinguer les symboles en majuscules des symboles en minuscules. Si vous n'utilisez votre bibliothèque qu'avec ILINK32, vous pouvez utiliser l'option /C de TLIB sans aucun problème.


Options d'action par défaut

Les options d'action par défaut vous permettent de spécifier une ou plusieurs actions qui sont utilisées pour chaque module ultérieur sans commande explicite spécifiée, ou jusqu'à ce qu'un indicateur d'action différent soit défini. L'utilisation des options d'action par défaut vous permet de spécifier des modules dans une commande TLIB sans avoir à préfixer chaque module par un symbole de commande ou d'action. Les options d'action par défaut TLIB exécutent des actions similaires à celles exécutées par les indicateurs d'opération TLIB décrits dans Opérations.

TLIB reconnaît les options d'action par défaut suivantes :

Options d'action par défaut TLIB

Option Description

/a

Ajouter le module à la bibliothèque.

/d

Retirer le module de la bibliothèque.

/e

Extraire le module sans le retirer.

/u

Remplacer le module dans la bibliothèque.

/x

Extraire le module et le retirer.


Opérations

La liste <operations> décrit les actions à faire exécuter par TLIB avec les modules spécifiés et se compose d'une séquence d'opérations données l'une après l'autre. Chaque opération est composée d'un symbole d'action à un ou deux caractères, suivi d'un nom de fichier ou de module :

<symbol> modulename

Vous pouvez placer un espace blanc avant ou après le symbole d'action <symbol> ou le nom de module modulename, mais pas au milieu d'une action à deux caractères. Vous pouvez placer autant d'opérations que vous voulez sur la ligne de commande. L'ordre des opérations n'a pas d'importance. TLIB applique toujours les opérations dans un ordre spécifique :

  1. Toutes les opérations d'extraction sont effectuées en premier.
  2. Toutes les opérations de suppression sont effectuées ensuite.
  3. Toutes les opérations d'ajout sont effectuées en dernier.

Pour remplacer un module, retirez-le, puis ajoutez le module de remplacement.

TLIB trouve le nom d'un module en retirant les informations d'unité, de chemin et d'extension éventuellement présentes dans le nom du fichier.

Notez que TLIB adopte toujours des valeurs par défaut raisonnables. Par exemple, pour ajouter un module d'extension .OBJ au répertoire en cours, vous n'avez besoin de spécifier que le nom du module et non le chemin et l'extension .OBJ.

Les caractères génériques ne sont jamais acceptés dans les noms de fichier ou de module.

Symboles d'action

TLIB reconnaît trois symboles d'action : *, +, -, que vous pouvez utiliser séparément ou par paires pour un total de cinq opérations distinctes. L'ordre des caractères n'est pas important pour les opérations utilisant une paire de caractères.

Pour créer une bibliothèque, ajoutez des modules à une bibliothèque qui n'existe pas encore.

Opérations d'action supportées

Symbole Nom Description

+

Ajouter

TLIB ajoute le fichier nommé à la bibliothèque. Si le fichier ne possède pas d'extension, TLIB utilise l'extension .OBJ. Si le fichier est lui-même une bibliothèque (d'extension .LIB), l'opération ajoute tous les modules de la bibliothèque nommée à la bibliothèque cible. Si un module en cours d'ajout existe déjà, TLIB affiche un message et n'ajoute pas le nouveau module.

-

Retirer

TLIB retire le module nommé de la bibliothèque. Si le module n'existe pas dans la bibliothèque, TLIB affiche un message. Une opération de suppression ne nécessite qu'un nom de module. TLIB permet d'entrer un nom complet avec unité, chemin et extension, mais ne prend en compte que le nom de module.

*

Extraire

TLIB crée le fichier nommé en copiant le module correspondant de la bibliothèque vers le fichier. Si le module n'existe pas, TLIB affiche un message et ne crée pas le fichier. Si le fichier nommé existe déjà, il est remplacé. Il n'est pas possible de renommer directement des modules dans une bibliothèque. Pour renommer un module, il faut l'extraire et le retirer, renommer le fichier qui vient d'être créé puis le réintroduire dans la bibliothèque.

-* ou *-

Extraire et retirer

TLIB copie le module nommé de la bibliothèque dans le fichier. Si le module n'existe pas, TLIB affiche un message et ne crée pas le fichier. Si le fichier nommé existe déjà, il est remplacé. TLIB retire le nom de fichier puis retire le fichier de la bibliothèque.

-+ ou +-

Remplacer

TLIB remplace le module nommé par le fichier correspondant.


Fichiers de réponse

Un fichier de réponse est un fichier texte ASCII qui contient tout ou une partie d'une commande TLIB. Avec les fichiers de réponse TLIB, vous pouvez construire des commandes TLIB qui ne tiennent pas sur une seule ligne de commande. Si vous devez effectuer un grand nombre d'opérations ou plusieurs fois les mêmes opérations, les fichiers de réponse vous rendront la tâche plus facile.

Les fichiers de réponse peuvent :

  • Contenir plusieurs lignes de texte ; utilisez le caractère "et commercial" (&) à la fin d'une ligne pour indiquer la présence d'une ligne suivante.
  • Inclure une liste de commandes partielle. Vous pouvez combiner des options de la ligne de commande avec des options d'un fichier de réponse.
  • Etre utilisés avec d'autres fichiers de réponse dans une ligne de commande TLIB unique.


Exemples

Ces exemples simples montrent quelques-unes des opérations qui peuvent être exécutées avec TLIB :

Exemple 1

Pour créer une bibliothèque nommée MYLIB.LIB avec les modules X.OBJ, Y.OBJ et Z.OBJ, tapez :

tlib mylib +x +y +z

Exemple 2

Pour créer une bibliothèque nommée MYLIB.LIB et obtenir un listage dans MYLIB.LST, tapez :

tlib mylib +x +y +z, mylib.lst

Exemple 3

Pour obtenir un listage dans CS.LST d'une bibliothèque existante CS.LIB, tapez :

tlib cs, cs.lst

Exemple 4

Pour remplacer le module X.OBJ par une nouvelle copie, ajouter A.OBJ et supprimer Z.OBJ de MYLIB.LIB, tapez :

tlib mylib -+x +a -z

Exemple 5

Pour extraire le module Y.OBJ de MYLIB.LIB et obtenir un listage dans MYLIB.LST, tapez :

tlib mylib *y, mylib.lst

Exemple 6

Pour créer une nouvelle bibliothèque nommée ALPHA et comprenant les modules A.OBJ, B.OBJ, ..., G.OBJ en utilisant un fichier de réponse :

  1. Créez d'abord un fichier texte ALPHA.RSP avec :
+a.obj +b.obj +c.obj & +d.obj +e.obj +f.obj & +g.obj
  1. Utilisez ensuite la commande TLIB qui produit un fichier de listage nommé ALPHA.LST :
tlib alpha @alpha.rsp, alpha.lst

Exemple 7

Pour mettre à jour les modules Y.OBJ et Z.OBJ et supprimer les modules A.OBJ et B.OBJ de MYLIB.LIB, tapez :

tlib mylib /u Y.obj Z.obj /d A.obj B.obj

See Also