TLIB.EXE: Der Bibliotheksmanager
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 Sie eine Sammlung von Objektmodulen als Einheit verwalten können.
Inhaltsverzeichnis
Die im C++Builder-Compiler enthaltenen Bibliotheken wurden mit TLIB erzeugt. Mit TLIB können Sie eigene Bibliotheken erstellen oder die C++Builder-Bibliotheken, Ihre Bibliotheken, Bibliotheken von anderen Programmierern oder kommerziell vertriebene Bibliotheken bearbeiten.
Wenn TLIB eine vorhandene Bibliothek ändert, erstellt es eine Kopie der Originalbibliothek mit der Erweiterung .BAK.
TLIB kann verwendet 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 dem BCC32.EXE-Compiler 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 <libname> [<options>] [<operations>] [@<respfile>] [, <listfile>]
Befehlszeilenelemente
Die folgenden Elemente können in der Befehlszeile von TLIB verwendet werden:
Element | Beschreibung |
---|---|
<libname> |
|
<options> |
TLIB akzeptiert die folgenden allgemeinen Befehlszeilenoptionen: |
<operations> |
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: |
@<respfile> |
|
<listfile> |
|
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 |
---|---|
|
Legt zum Erzeugen einer großen Bibliothek die Bibliotheksseitengröße auf |
|
Gibt die Listing-Datei |
|
Deaktiviert die Unterstützung der Befehlssyntax. |
|
Aktiviert die Unterstützung der Befehlssyntax. |
|
Entfernt Kommentardatensätze. |
|
Zeigt in UTF8 codierte Warnungen und Meldungen an. |
|
Erzwingt eine neue Bibliothek. |
|
Schreibt Archive im Format |
|
Weist |
|
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 Sie versuchen, 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.
Wenn TLIB nach doppelten Symbolen in der Bibliothek sucht, werden Groß- und Kleinbuchstaben in der Regel nicht unterschiedlich behandelt. Beispielsweise werden die Symbole |
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 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 |
---|---|
|
Fügt der Bibliothek das Modul hinzu. |
|
Entfernt das Modul aus der Bibliothek. |
|
Extrahiert das Modul, ohne es zu entfernen. |
|
Ersetzt das Modul in der Bibliothek. |
|
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> modulename
Vor oder nach dem Aktionssymbol <Symbol>
und dem Modulnamen Modulname
können Whitespace-Zeichen stehen, aber nicht in der Mitte eines zwei Zeichen langen Aktionssymbols. Sie können in die Befehlszeile beliebig viele Operationen aufnehmen. Die Reihenfolge der Operationen ist nicht wichtig. TLIB wendet die Operationen immer in einer bestimmten Reihenfolge an:
- Zuerst werden alle Extrahieren-Operationen ausgeführt.
- Dann werden alle Löschen-Operationen ausgeführt.
- Zuletzt werden alle Hinzufügen-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, Pfad 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 erkennt drei Aktionssymbole: *
, +
, -
, die einzeln oder paarweise kombiniert für insgesamt fünf verschiedene Operationen verwendet werden können. Bei Operationen mit einem Zeichenpaar spielt die Reihenfolge der Zeichen keine Rolle.
Um eine Bibliothek zu erstellen, fügen Sie Module einer noch nicht vorhandenen Bibliothek hinzu.
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 Pfadname mit Laufwerk und Namenserweiterung angegeben werden, diese Informationen werden von TLIB aber ignoriert. |
|
Extrahieren |
TLIB erstellt die angegebene Datei durch Kopieren des entsprechenden Moduls aus der Bibliothek in die Datei. Ist das Modul nicht in der Bibliothek vorhanden, gibt TLIB eine Meldung aus und erstellt keine Datei. Wenn die angegebene Datei bereits vorhanden ist, wird sie überschrieben. Sie können Module in einer Bibliothek nicht direkt umbenennen. Dazu müssen Sie ein Modul extrahieren und löschen, die entstandene Datei umbenennen und dann wieder in die Bibliothek einfügen. |
|
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 erstellt keine Datei. Wenn die angegebene Datei bereits vorhanden ist, wird sie überschrieben. TLIB entfernt den Dateinamen und entfernt dann das Modul aus der Bibliothek. |
|
Ersetzen |
TLIB ersetzt das angegebene Modul durch die entsprechende Datei. |
Antwortdateien
Eine Antwortdatei ist eine ASCII-Textdatei, die einen TLIB-Befehl ganz oder teilweise enthält. Mit Antwortdateien können TLIB-Befehle erstellt werden, die länger als die maximale Befehlszeile sind. Wenn Sie eine große Anzahl von Operationen oder mehrere Operationen durchführen müssen, können Antwortdateien Ihre Arbeit erleichtern.
Antwortdateien können:
- Mehr als eine Zeile Text enthalten. Das Ampersand-Zeichen (&) am Ende einer Zeile gibt an, dass eine weitere Zeile folgt.
- Eine Teilliste von Befehlen enthalten. Optionsangaben aus der Befehlszeile können mit Optionsangaben aus der Antwortdatei kombiniert werden.
- Zusammen mit anderen Antwortdateien in einer einzelnen TLIB-Befehlszeile verwendet werden.
Reine Antwortdateien
Im Gegensatz zu einer herkömmlichen Antwortdatei enthält eine reine Antwortdatei weder das führende +
vor einer Objektdatei noch das abschließende &
, um anzugeben, dass eine weitere Zeile folgt. Reine Antwortdateien enthalten nur eine Liste von Objektdateien, und die Option /B
ist notwendig, um tlib
anzuweisen, eine reine Antwortdatei zu erwarten.
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 erstellen, 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 Antwortdatei zu erstellen:
- Erstellen Sie zuerst eine Textdatei, ALPHA.RSP:
+a.obj +b.obj +c.obj & +d.obj +e.obj +f.obj & +g.obj
- Verwenden Sie dann den Befehl TLIB, der eine Listing-Datei mit dem Namen ALPHA.LST erstellt:
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