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 Sie eine Sammlung von Objektmodulen als Einheit verwalten können.

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>

<BibName> ist der Pfadname der Bibliothek, die angelegt oder verwaltet werden soll. Der <BibName> muss angegeben werden.
Platzhalter sind nicht zulässig. Wird keine Namenserweiterung angegeben, geht TLIB von der Erweiterung .LIB aus.
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: Wenn die angegebene Bibliothek nicht vorhanden ist und Hinzufüge-Operationen festgelegt sind, erstellt TLIB die Bibliothek.

<options>

TLIB akzeptiert die folgenden allgemeinen Befehlszeilenoptionen: /C, /A, /B, /L, /F, /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 angegeben ist. Standardaktionsoptionen ermöglichen die Angabe von Modulen in einem TLIB-Befehl, ohne dass jedem Modul ein Aktionssymbol vorangestellt werden muss.

<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:
<symbol> modulename 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.

@<respfile>

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

<listfile>

<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

Legt zum Erzeugen einer großen Bibliothek die Bibliotheksseitengröße auf SIZE fest. Die Seitengröße einer Bibliothek bestimmt die maximale Gesamtgröße aller Objektmodule in der Bibliothek. 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. Um eine größere Bibliothek zu erstellen, verwenden Sie die Option /PSIZE, um die Seitengröße auf SIZE zu erhöhen. 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 Sie versuchen, eine Bibliothek zu erstellen, 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> an 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.

/F

Erzwingt eine neue Bibliothek.

/A

Schreibt Archive im Format GNU AR für ELF-Objektdateien.

/B

Weist tlib an, eine reine Antwortdatei zu erwarten. Weitere Informationen finden Sie im Abschnitt Reine Antwortdateien.

/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 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 lookup und LOOKUP als Duplikate behandelt. Mit der Option /C können Sie einer Bibliothek Module hinzufügen, die Symbole enthalten, die sich nur durch die Groß-/Kleinschreibung unterscheiden. Sie sollten /C nicht angeben, 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 unterschiedet zwischen Symbolen in Groß- und Kleinbuchstaben. Solange Sie Ihre Bibliothek nur mit ILINK32 verwenden, können Sie die TLIB-Option /C problemlos angeben.


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

/a

Fügt der Bibliothek das Modul 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> 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:

  1. Zuerst werden alle Extrahieren-Operationen ausgeführt.
  2. Dann werden alle Löschen-Operationen ausgeführt.
  3. 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.

-* or *-

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.

-+ oder +-

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:

  1. Erstellen Sie zuerst eine Textdatei, ALPHA.RSP:

+a.obj +b.obj +c.obj & +d.obj +e.obj +f.obj & +g.obj

  1. 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

Siehe auch