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 in dem C++-Compiler von C++Builder enthaltenen Bibliotheken wurden mit TLIB erzeugt. Mit TLIB können Sie eigene Bibliotheken anlegen oder die C++-Bibliotheken von C++Builder, 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 dem C++-Compiler von C++Builder 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>]
Um die Hilfe für die Befehlszeile anzuzeigen, geben Sie Folgendes ein:
C:\>tlib
| Element | Beschreibung |
|---|---|
<BibName> |
Der DOS-Pfadname der Bibliothek, die angelegt oder verwaltet werden soll. In jedem TLIB-Befehl muss ein BibName angegeben werden. Platzhalter sind nicht erlaubt. 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 sie 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 fünf allgemeine Optionen (C, L, P, O und 8) sowie fünf Standardaktionsoptionen (a, d, e, u und x). Informationen zu TLIB-Optionen und zu den Standardaktionsoptionen finden Sie im Anschluss an diese Tabelle. |
<Operationen> |
Beschreibt die Aktionen, die TLIB ausführen soll und besteht aus einer Folge von zwei Zeichen langen Operationscodes. Wenn Sie nur den Inhalt der Bibliothek untersuchen möchten, geben Sie keine Operationen an. Weitere Informationen finden Sie weiter unten in diesem Thema. |
@<Resp-Datei> |
Der vollständige Pfad und der Name der Befehlsdatei, die eingebunden werden soll. Sie können mehrere Response-Dateien angeben. Weitere Einzelheiten finden Sie weiter unten in diesem Thema. |
<Listendatei> |
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 öffentlichen Symbole, die in diesem Modul definiert sind. Die Standard-Namenserweiterung für die Listendatei ist .LST. |
Allgemeine TLIB-Befehlsoptionen
TLIB erkennt sieben allgemeine Befehlsoptionen:
- /C (berücksichtigt die Groß-/Kleinschreibung; siehe Informationen dazu weiter unten)
- /L (erstellt eine Listing-Datei auf der Standardausgabe)
- /N (deaktiviert die Standardaktionsoptionen)
- /O (großes O; aktiviert die Standardaktionsoptionen)
- /P (Seitengröße; siehe Informationen dazu weiter unten)
- /0 (Null; entfernt Kommentare)
- /8 (zeigt in UTF8 codierte Warnungen und Meldungen an)
Einige dieser Optionen werden im Folgenden ausführlicher beschrieben.
TLIB: Option /C: Groß-/Kleinschreibung in einer Bibliothek
Wenn einer Bibliothek ein Modul hinzugefügt wird, legt TLIB ein Verzeichnis aller öffentlichen 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 benutzt 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.
TLIB: Option /P: Die Seitengröße zum Erzeugen einer großen Bibliothek definieren
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 /P 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 /P mit der nächsthöheren Seitengröße zu verwenden.
TLIB-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 TLIB: Operationenliste).
TLIB-Standardaktionsoptionen:
| Symbol | Beschreibung |
|---|---|
/a |
Das Modul der Bibliothek hinzufügen. |
/d |
Das Modul aus der Bibliothek entfernen. |
/e |
Das Modul extrahieren, ohne es zu entfernen. |
/u |
Das Modul in der Bibliothek ersetzen. |
/x |
Das Modul extrahieren und entfernen. |
TLIB: Operationenliste
Die Operationenliste beschreibt die Aktionen, die von TLIB durchgeführt werden sollen. Sie besteht aus einer Abfolge von Operationen, die nacheinander aufgeführt sind. 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 und dem Datei- oder Modulnamen können Whitespace-Zeichen stehen, nicht aber in einem zwei Zeichen langen Aktionssymbol oder einem Namen. Es können beliebig viele Operationen in der Befehlszeile angegeben werden bis zu der von DOS (COMMAND.COM) vorgegebenen maximalen Zeilenlänge von 127 Zeichen. Die Reihenfolge der Operationen spielt keine Rolle, weil TLIB die Operationen in einer festgelegten Reihenfolge verarbeitet:
Um ein Modul zu ersetzen, entfernen Sie es und fügen das Ersatzmodul hinzu.
- Zuerst werden alle Extrahierungs-Operationen ausgeführt.
- Dann werden alle Löschen-Operationen durchgeführt.
- Zuletzt werden alle Hinzufüge-Operationen ausgeführt.
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 erlaubt.
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 existierenden Bibliothek hinzugefügt.
TLIB: Aktionssymbole:
| 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 existiert, 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 Löschen 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. Existiert das Modul nicht in der Bibliothek, 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. Existiert das Modul nicht in der Bibliothek, gibt TLIB eine Meldung aus und erzeugt keine Datei. Wenn die angegebene Datei bereits existiert, wird sie überschrieben. TLIB entfernt den Dateinamen und entfernt ihn dann aus der Bibliothek. |
-+ oder +- |
Ersetzen |
TLIB ersetzt das angegebene Modul durch die entsprechende Datei. |
TLIB: Response-Dateien verwenden
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.
TLIB: 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 eine 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 eine 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