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 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.
Inhaltsverzeichnis
Befehlszeilensyntax
TLIB <BibName> [<Optionen>] [<Operationen>] [@<Resp-Datei>] [, <Listendatei>]
Befehlszeilenelemente
Die folgenden Elemente können in der Befehlszeile von TLIB verwendet werden:
Element | Beschreibung |
---|---|
<BibName> |
|
<Optionen> |
TLIB akzeptiert die folgenden allgemeinen Befehlszeilenoptionen: |
<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> |
|
<Listendatei> |
|
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 |
---|---|
|
Setzt zum Erzeugen einer großen Bibliothek die Bibliotheksseitengröße auf 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 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 |
|
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. |
|
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
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 |
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 |
---|---|
|
Fügt das Modul der Bibliothek 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> 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:
- Zuerst werden alle Extrahierungs-Operationen ausgeführt.
- Dann werden alle Löschen-Operationen durchgeführt.
- 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. |
|
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. |
|
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:
- Wird zuerst eine Textdatei, ALPHA.RSP, erzeugt:
+a.obj +b.obj +c.obj & +d.obj +e.obj +f.obj & +g.obj
- 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