Was ist das LIB-Dateiformat?
Eine .lib-Datei ist eine Bibliotheksdatei, die dem Linker als Eingabe übergeben wird. .lib-Dateien gibt es in zwei Varianten: standardmäßige statische Bibliotheksdateien und COFF (Common Object File Format) Import-Bibliotheksdateien. Die statischen Bibliotheksdateien enthalten kompilierte .obj-Objektmodule; die Import-Bibliotheksdateien enthalten Symbol- und Ordinal-Stubs, die auf eine .dll verweisen, und geben dem Linker die Informationen, die er zur Auflösung von Laufzeitabhängigkeiten benötigt. Das Tool LIB.EXE wird verwendet, um beide Typen von Bibliotheksdateien zu erstellen. Auf Binärebene ist eine .lib ein ar-Format-Archiv, das mit der 8-Byte-Signatur !<arch> beginnt - dieselbe Struktur wie bei Unix-.a-Statikbibliotheken. Den Inhalt können Sie mit DUMPBIN /HEADERS oder ar -t untersuchen.
Sicherheit
RISIKO: LOWEine .lib enthält Build-Zeit-Daten und wird nicht von Windows ausgeführt, daher geht von ihr für Endbenutzer kaum ein direktes Risiko aus. Für Entwickler liegt das Risiko in der Lieferkettensicherheit: Eine böswillige oder manipulierte statische Bibliothek bindet ihren Code direkt in Ihr Programm ein. Verwenden Sie daher .lib-Dateien nur aus vertrauenswürdigen SDK-Quellen und überprüfen Sie Prüfsummen/Signaturen. Die davon unabhängigen Spiel-/App-.lib-Archive sind harmlose Datendateien.
Formatdetails
kurz gefasst- Game / application archive (LIB) - Einige Spiele und Apps (z. B. Asset-Pakete bestimmter Titel) verwenden .lib als benutzerdefinierten Daten-/Archivcontainer, der nichts mit Compiler-Bibliotheken zu tun hat.
Programme zum Öffnen von LIB-Dateien
Technische Details
technische Spezifikation| Formattyp | Archiv von COFF-Objektmodulen (statische Bibliothek) oder Import-Stubs (Import-Bibliothek) |
| Magic Bytes | 21 3C 61 72 63 68 3E 0A - ASCII „!<arch>\n” bei Byte-Offset 0 |
| Containerstruktur | ar-Archivformat; dieselbe 8-Byte-Signaturfamilie wie Unix-.a-Statikbibliotheken |
| MIME-Typ | application/octet-stream |
| Inhalt statischer Bibliotheken | COFF-.obj-Mitglieder mit kompiliertem Maschinencode, Relokationseinträgen und Symboltabellen |
| Inhalt von Import-Bibliotheken | Symbolnamentabelle, DLL-Name und Export-Ordinal-/Namens-Stubs - kein ausführbarer Maschinencode |
| Hauptverwendung | Linker-Eingabe: wird von LINK.EXE oder ld zur Auflösung von Symbolreferenzen beim Build-Vorgang verwendet |
| Erstellungswerkzeug | LIB.EXE (MSVC-Toolchain); auch ar und dlltool (GNU Binutils / MinGW) |
| Untersuchungswerkzeuge | DUMPBIN.EXE /HEADERS, LIB.EXE /LIST, ar -t, nm |
| Symbolindex | Das erste Archivmitglied ist eine Symbolkarte, die eine schnelle Symbolsuche beim Linken ermöglicht |
| Erstellung von Import-Bibliotheken | Wird von LINK.EXE beim Erstellen einer DLL automatisch generiert; manuell erstellt mit LIB.EXE /DEF:<deffile> |
| Linker-Kompatibilität | Microsoft LINK.EXE, lld-link (LLVM); GNU ld über MinGW mit eingeschränkter Kompatibilität |
| Zielplattform | Primär Windows (Win32 / Win64); ältere MS-DOS-Toolchains |
| Kodierung | Binär; COFF-Datensätze sind an Maschinenwortgrenzen innerhalb von ar-Archivmitgliedern ausgerichtet |
| Unix-Gegenstück | Unix/Linux-.a-Statikbibliotheksarchiv, erstellt mit ar und verwendet von ld |
| Entwicklungsgeschichte | Microsoft-Implementierung von COFF; COFF selbst geht auf AT&T Unix System V (1983) zurück |
| Veröffentlicht | COFF lineage from Unix (1980s); MS .lib via Visual C++/MS-DOS toolchains, early 1990s |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | learn.microsoft.com |
LIB-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu LIB-Dateien.