Wat is het LIB-bestandsformaat?
Een .lib-bestand is een bibliotheekbestand dat als invoer aan de linker wordt aangeboden. .lib-bestanden zijn er in twee soorten: standaard statische bibliotheekbestanden en COFF (Common Object File Format) importbibliotheekbestanden. De statische bibliotheekbestanden bevatten gecompileerde .obj objectmodules; de importbibliotheekbestanden bevatten symbool- en ordinale stubs die naar een .dll verwijzen, waardoor de linker de informatie krijgt die nodig is om runtime-afhankelijkheden op te lossen. De tool LIB.EXE wordt gebruikt om beide typen bibliotheekbestanden te maken. Op binair niveau is een .lib een archief in ar-formaat dat begint met de 8-byte !<arch>-handtekening - dezelfde structuur die wordt gebruikt door Unix .a statische bibliotheken. U kunt de inhoud inspecteren met DUMPBIN /HEADERS of ar -t.
Beveiliging & veiligheid
RISICO: LOWEen .lib bevat gegevens voor tijdens het bouwen, niet iets dat Windows uitvoert, dus het vormt weinig direct risico voor eindgebruikers. Voor ontwikkelaars is het punt van zorg het vertrouwen in de toeleveringsketen: een kwaadaardige of gemanipuleerde statische bibliotheek linkt zijn code rechtstreeks in uw programma, dus gebruik alleen .lib-bestanden van vertrouwde SDK-bronnen en verifieer checksums/handtekeningen. De niet-gerelateerde game/app .lib-archieven zijn inerte gegevensbestanden.
Formaatdetails
in een notendop- Game / applicatie-archief (LIB) - Sommige games en apps (bijv. asset-packs van bepaalde titels) gebruiken .lib als een aangepaste gegevens-/archiefcontainer die geen verband houdt met compilerbibliotheken.
Programma's die LIB-bestanden openen
Technische details
diepe specificaties| Formaattype | Archief van COFF-objectmodules (statische lib) of import-stubs (import-lib) |
| Magic bytes | 21 3C 61 72 63 68 3E 0A - ASCII „!<arch>\n” op byte-offset 0 |
| Containerstructuur | ar-archiefformaat; dezelfde 8-byte handtekeningfamilie als Unix .a statische bibliotheken |
| MIME-type | application/octet-stream |
| Inhoud statische lib | COFF .obj-leden die gecompileerde machinecode, relocatie-records en symbooltabellen bevatten |
| Inhoud import-lib | Symboolnaamtabel, DLL-naam en export ordinale/naam-stubs - geen uitvoerbare machinecode |
| Primair gebruik | Linker-invoer: verbruikt door LINK.EXE of ld om symboolreferenties op te lossen tijdens het bouwen |
| Maker-tool | LIB.EXE (MSVC toolchain); ook ar en dlltool (GNU Binutils / MinGW) |
| Inspectie-tools | DUMPBIN.EXE /HEADERS, LIB.EXE /LIST, ar -t, nm |
| Symboolindex | Eerste archieflid is een symboolkaart die snelle symboolzoekopdrachten tijdens het linken mogelijk maakt |
| Import-lib generatie | Automatisch gegenereerd door LINK.EXE bij het bouwen van een DLL; handmatig gemaakt met LIB.EXE /DEF:<deffile> |
| Linker-compatibiliteit | Microsoft LINK.EXE, lld-link (LLVM); GNU ld via MinGW met gedeeltelijke compatibiliteit |
| Doelplatform | Voornamelijk Windows (Win32 / Win64); legacy MS-DOS toolchains |
| Codering | Binair; COFF-records zijn uitgelijnd op machinewoorden binnen de ar-archiefleden |
| Unix-tegenhanger | Unix/Linux .a statisch bibliotheekarchief, gemaakt met ar en verbruikt door ld |
| Ontwikkelaarsafkomst | Microsoft-implementatie van COFF; COFF zelf stamt af van AT&T Unix System V (1983) |
| Uitgebracht | COFF lineage from Unix (1980s); MS .lib via Visual C++/MS-DOS toolchains, early 1990s |
| Open standaard | Ja · royaltyvrij |
| Specificatie | learn.microsoft.com |
LIB conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over LIB-bestanden.