TLIB.EXE: Der Bibliotheksmanager

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Befehlszeilenhilfsprogramme - Index

TLIB ist ein Hilfsprogramm zur Verwaltung von Bibliotheken, die aus einzelnen .OBJ-(Objektmodul)-Dateien bestehen. Eine Bibliothek ist ein komfortables Hilfsmittel, mit dem sich eine Sammlung von Objektmodulen als eine einzige Einheit verwalten lässt.

Die im C++Builder-Compiler enthaltenen Bibliotheken wurden mit TLIB erzeugt. Mit TLIB können Sie eigene Bibliotheken anlegen oder die C++Builder-Bibliotheken, eigene Bibliotheken, Bibliotheken von anderen Programmierern oder kommerziell vertriebene Bibliotheken bearbeiten.

Wenn TLIB eine vorhandene Bibliothek verändert, erstellt es eine Kopie der Originalbibliothek mit der Erweiterung .BAK.

TLIB kann eingesetzt werden um:

  • Eine neue Bibliothek aus einer Gruppe von Objektmodulen zu erzeugen.
  • Objektmodule oder andere Bibliotheken zu einer bestehenden Bibliothek hinzuzufügen.
  • Objektmodule aus einer bestehenden Bibliothek zu entfernen.
  • Objektmodule in einer bestehenden Bibliothek durch andere zu ersetzen.
  • Objektmodule aus einer bestehenden Bibliothek zu extrahieren.
  • Den Inhalt einer neuen oder vorhandenen Bibliothek aufzulisten.

TLIB kann außerdem ein erweitertes Verzeichnis erstellen (und in die Bibliotheksdatei einbeziehen), mit dessen Hilfe der Linkvorgang beschleunigt werden kann.

TLIB ist nicht zwingend erforderlich, um mit BCC32.EXE ausführbare Programme zu erzeugen; es ist aber ein sehr nützliches Programmierhilfsmittel, das vor allem für die Entwicklung großer Projekte unentbehrlich sein kann.


Befehlszeilensyntax

TLIB <BibName> [<Optionen>] [<Operationen>] [@<Resp-Datei>] [, <Listendatei>] 


Befehlszeilenelemente

Die folgenden Elemente können in der Befehlszeile von TLIB verwendet werden:

Element Beschreibung
<BibName>

<BibName> ist der Pfadname der Bibliothek, die angelegt oder verwaltet werden soll. <BibName> muss angegeben werden.
Platzhalter sind nicht zulässig. Wird keine Namenserweiterung angegeben, vergibt TLIB die Erweiterung .LIB.
Es sollte ausschließlich die Namenserweiterung .LIB verwendet werden, da sowohl BCC32 als auch die IDE diese für das Erkennen von Bibliotheksdateien benötigen.
Hinweis: Existiert die angegebene Bibliothek nicht und sind Hinzufüge-Operationen festgelegt, legt TLIB die Bibliothek an.

<Optionen>

TLIB akzeptiert die folgenden allgemeinen Befehlszeilenoptionen: /C, /L, /P, /O, /N, /0 und /8 sowie die folgenden Standardaktionsoptionen/a, /d, /e, /u und /x. Eine Standardaktionsoption legt eine Aktion fest, die für jedes Modul übernommen wird, für das kein expliziter Befehl festgelegt ist. Standardaktionsoptionen ermöglichen die Angabe von Modulen in einem TLIB-Befehl, ohne dass jedem Modul ein Aktionssymbol vorangestellt werden muss.

<Operationen>

Beschreibt die Befehle, die TLIB für die angegebenen Module ausführen soll. Jeder Befehl besteht aus einer Folge von ein oder zwei Zeichen langen Operationscodes und einem Datei oder Modulnamen:

<Symbol> Modulname

Wenn Sie nur den Inhalt der Bibliothek untersuchen möchten, geben Sie keine Befehle an. Weitere Informationen finden Sie unter Operationen weiter unten in diesem Thema.

@<Resp-Datei>

<Resp-Datei> ist Pfad und der Name der Befehlsdatei, die eingebunden werden soll. Sie können mehrere Befehlsdateien angeben. Weitere Informationen finden Sie unter Response-Dateien weiter unten in diesem Thema.

<Listendatei>

<Listendatei> ist der Name der Textdatei, die TLIB erstellt und die den Inhalt der Bibliothek enthält. Vor dem Namen der <Listendatei> (wenn er angegeben wird) muss ein Komma stehen. Ohne Angabe eines Dateinamens wird keine Liste erzeugt. Die Liste ist ein alphabetisches Verzeichnis der Module. Der Eintrag für jedes Modul enthält eine alphabetische Liste aller public-Symbole, die in diesem Modul definiert sind. Die Standard-Namenserweiterung für die Listendatei ist .LST.

Um die Hilfe für die Befehlszeile anzuzeigen, geben Sie Folgendes ein:

tlib

oder

tlib -?

Allgemeine Befehlszeilenoptionen

TLIB erkennt die folgenden allgemeinen Befehlsoptionen:

Allgemeine TLIB-Befehlsoptionen

Option Beschreibung

/PSIZE

Setzt zum Erzeugen einer großen Bibliothek die Bibliotheksseitengröße auf SIZE.

Die Seitengröße einer Bibliothek legt die maximale Gesamtgröße aller Objektmodule in der Bibliothek fest. Die Größe darf 65.536 Seiten nicht überschreiten. Die voreingestellte (und minimale) Seitengröße von 16 Byte lässt eine maximale Bibliotheksgröße von 1 MB zu. Größere Bibliotheken können durch Erhöhen der Seitengröße mit Hilfe der Option /PSIZE angelegt werden. Die Seitengröße muss eine Potenz von 2 sein und darf nicht kleiner als 16 und nicht größer als 32.768 sein.

Alle Module müssen an einer Seitengrenze beginnen. Beispielsweise gehen bei einer Seitengröße von 32 Byte (die kleinstmögliche Seitengröße, die höher als die Voreinstellung 16 ist) durchschnittlich 16 Byte pro Objektmodul für das Auffüllen verloren. Wenn versucht wird, eine Bibliothek anzulegen, die für die gegebene Seitengröße zu groß ist, gibt TLIB eine Fehlermeldung aus und schlägt vor, die Option /PSIZE mit der nächsthöheren Seitengröße zu verwenden.

/L

Gibt die Listing-Datei <Listendatei> auf der Standardausgabe stdout aus.

/N

Deaktiviert die Unterstützung der Befehlssyntax.

/O

Aktiviert die Unterstützung der Befehlssyntax.

/0

Entfernt Kommentardatensätze.

/8

Zeigt in UTF8 codierte Warnungen und Meldungen an.

/C

Legt die Groß-/Kleinschreibung von Symbolen in einer Bibliothek fest. Diese Option wird normalerweise nicht verwendet.

Wenn einer Bibliothek ein Modul hinzugefügt wird, legt TLIB ein Verzeichnis aller public Symbole an, die in den Modulen der Bibliothek definiert sind. Alle Symbole in der Bibliothek müssen eindeutig sein. Wenn versucht wird, ein Modul in die Bibliothek einzufügen, das zur Verdoppelung eines Symbols führen würde, gibt TLIB eine Fehlermeldung aus und fügt das Modul nicht ein.

Normalerweise unterscheidet TLIB bei der Prüfung auf doppelte Symbole nicht zwischen Groß- und Kleinschreibung. Zum Beispiel werden die Symbole lookup und LOOKUP als identisch behandelt. Mit der Option /C können einer Bibliothek Module hinzugefügt werden, die Symbole enthalten, die sich nur durch die Groß-/Kleinschreibung unterscheiden.

/C sollte nicht eingesetzt werden, wenn die Bibliothek zusammen mit anderen Linkern verwendet oder anderen Benutzern zur Verfügung gestellt werden soll.

TLIB weist normalerweise Symbole zurück, die sich nur in der Groß-/Kleinschreibung unterscheiden, weil manche Linker diesen Unterschied nicht erkennen. ILINK32 hat damit keine Schwierigkeiten. Wenn Bibliotheken nur zusammen mit ILINK32 verwendet werden, kann die Option /C von TLIB ohne Bedenken verwendet werden.


Standardaktionsoptionen

Mit den Standardaktionsoptionen können Sie eine oder mehrere Aktionen festlegen, die für jedes folgende Modul verwendet werden, für das kein expliziter Befehl angegeben ist, oder bis ein anderes Aktions-Flag gesetzt wird. Die Standardaktionsoptionen ermöglichen die Angabe von Modulen in einem TLIB-Befehl, ohne dass jedem Modul ein Befehls- oder ein Aktionssymbol vorangestellt werden muss. Die Standardaktionsoptionen von TLIB führen ähnliche Aktionen wie die TLIB-Operations-Flags aus (siehe Operationen).

TLIB erkennt die folgenden Standardaktionsoptionen:

TLIB-Standardaktionsoptionen

Option Beschreibung

/a

Fügt das Modul der Bibliothek hinzu.

/d

Entfernt das Modul aus der Bibliothek.

/e

Extrahiert das Modul, ohne es zu entfernen.

/u

Ersetzt das Modul in der Bibliothek.

/x

Extrahiert das Modul und entfernt es.


Operationen

Die Liste <Operationen> beschreibt die Aktionen, die von TLIB für die angegebenen Module durchgeführt werden sollen. Sie besteht aus einer Folge von Operationen. Jede Operation setzt sich aus einem ein oder zwei Zeichen langen Aktionssymbol zusammen, auf das ein Datei- oder Modulname folgt:

<Symbol> Modulname

Vor oder nach dem Aktionssymbol <Symbol> und dem Modulnamen Modulname können Whitespace-Zeichen stehen, nicht aber in einem zwei Zeichen langen Aktionssymbol. Sie können in die Befehlszeile beliebig viele Operationen aufnehmen. Die Reihenfolge der Operationen spielt keine Rolle, weil TLIB die Operationen in einer festgelegten Reihenfolge verarbeitet:

  1. Zuerst werden alle Extrahierungs-Operationen ausgeführt.
  2. Dann werden alle Löschen-Operationen durchgeführt.
  3. Zuletzt werden alle Hinzufüge-Operationen ausgeführt.

Um ein Modul zu ersetzen, entfernen Sie es und fügen das Ersatzmodul hinzu.

TLIB bestimmt den Modulnamen anhand des angegebenen Dateinamens und lässt Laufwerk, Suchpfad und Namenserweiterung weg.

TLIB geht immer von den üblichen Standardeinstellungen aus. Soll beispielsweise ein Modul mit der Namenserweiterung .OBJ aus dem aktuellen Verzeichnis hinzugefügt werden, muss nur der Modulname angegeben werden (ohne Pfadangabe und .OBJ-Erweiterung).

Platzhalter in Datei- oder Modulnamen sind nicht zulässig.

Aktionssymbole

TLIB kennt drei Aktionssymbole (*, +, -), die einzeln oder paarweise kombiniert für insgesamt fünf verschiedene Operationen eingesetzt werden können. Bei Operationen mit einem Zeichenpaar spielt die Reihenfolge der Zeichen keine Rolle.

Um eine Bibliothek anzulegen, werden Module zu einer noch nicht vorhandenen Bibliothek hinzugefügt.

Unterstützte Aktionsoperationen

Symbol Name Beschreibung

+

Hinzufügen

TLIB fügt der Bibliothek die angegebene Datei hinzu. Wenn keine Namenserweiterung angegeben ist, geht TLIB von .OBJ aus. Handelt es sich bei der angegebenen Datei selbst um eine Bibliothek (mit der Namenserweiterung .LIB), fügt die Operation alle Module in die Zielbibliothek ein. Wenn ein Modul, das hinzugefügt werden soll, bereits vorhanden ist, gibt TLIB eine Meldung aus und fügt das neue Modul nicht hinzu.

-

Entfernen

TLIB entfernt das angegebene Modul aus der Bibliothek. Ist das Modul nicht in der Bibliothek enthalten, gibt TLIB eine Meldung aus. Für die Operation "Entfernen" muss nur der Modulname angegeben werden. Es kann zwar der vollständige Suchpfad mit Laufwerk und Namenserweiterung eingegeben werden, diese Informationen werden von TLIB aber ignoriert.

*

Extrahieren

TLIB erzeugt die angegebene Datei durch Kopieren des entsprechenden Moduls aus der Bibliothek. Ist das Modul nicht in der Bibliothek vorhanden, gibt TLIB eine Meldung aus und erzeugt keine Datei. Wenn die angegebene Datei bereits existiert, wird sie überschrieben. Bibliotheksmodule können nicht direkt umbenannt werden. Dazu muss ein Modul extrahiert und gelöscht, die entstandene Datei umbenannt und dann wieder in die Bibliothek eingefügt werden.

-* oder *-

Extrahieren und Entfernen

TLIB kopiert das angegebene Modul aus der Bibliothek in die Datei. Ist das Modul nicht in der Bibliothek vorhanden, gibt TLIB eine Meldung aus und erzeugt keine Datei. Wenn die angegebene Datei bereits existiert, wird sie überschrieben. TLIB entfernt den Dateinamen und entfernt dann das Modul aus der Bibliothek.

-+ oder +-

Ersetzen

TLIB ersetzt das angegebene Modul durch die entsprechende Datei.


Response-Dateien

Eine Response-Datei ist eine ASCII-Textdatei, die einen TLIB-Befehl ganz oder teilweise enthält. Mit Response-Dateien können TLIB-Befehle angelegt werden, die länger als die maximale DOS-Befehlszeile sind. Wenn mit einer großen Anzahl von Operationen gearbeitet oder dieselbe Menge von Operationen immer wieder verwendet wird, sind Response-Dateien eine spürbare Erleichterung.

Response-Dateien können:

  • Mehr als eine Zeile Text enthalten. Das &-Zeichen (Ampersand) am Ende einer Zeile zeigt an, dass eine weitere Zeile folgt.
  • Eine Teilliste von Befehlen enthalten. Optionsangaben aus der Befehlszeile können mit Optionsangaben aus der Response-Datei kombiniert werden.
  • Zusammen mit anderen Response-Dateien in einer einzelnen TLIB-Befehlszeile verwendet werden.


Beispiele

Die folgenden einfachen Beispiele demonstrieren einige der Möglichkeiten von TLIB:

Beispiel 1

Um eine Bibliothek namens MYLIB.LIB mit den Modulen X.OBJ, Y.OBJ und Z.OBJ zu erzeugen, geben Sie Folgendes ein:

tlib mylib +x +y +z

Beispiel 2

Um beim Erstellen der Bibliothek MYLIB.LIB ein Listing in MYLIB.LST auszugeben, geben Sie Folgendes ein:

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

Beispiel 3

Um für die vorhandene Bibliothek CS.LIB ein Listing in CS.LST auszugeben, geben Sie Folgendes ein:

tlib cs, cs.lst

Beispiel 4

Um das Modul X.OBJ durch ein neues Exemplar zu ersetzen, A.OBJ hinzuzufügen und Z.OBJ aus MYLIB.LIB zu löschen, geben Sie Folgendes ein:

tlib mylib -+x +a -z

Beispiel 5

Um das Modul Y.OBJ aus MYLIB.LIB zu extrahieren und ein Listing in MYLIB.LST auszugeben, geben Sie Folgendes ein:

tlib mylib *y, mylib.lst

Beispiel 6

Um eine neue Bibliothek mit dem Namen ALPHA und den Modulen A.OBJ, B.OBJ, ..., G.OBJ unter Verwendung einer Response-Datei anzulegen:

  1. Wird zuerst eine Textdatei, ALPHA.RSP, erzeugt:
+a.obj +b.obj +c.obj & +d.obj +e.obj +f.obj & +g.obj
  1. Und dann die folgende TLIB-Befehlszeile eingegeben, die eine Listing-Datei mit dem Namen ALPHA.LST erzeugt:
tlib alpha @alpha.rsp, alpha.lst

Beispiel 7

Um die Module Y.OBJ und Z.OBJ zu aktualisieren und die Module A.OBJ und B.OBJ aus MYLIB.LIB zu löschen, geben Sie Folgendes ein:

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