Hvad er LIB-filformatet?
En .lib-fil er en biblioteksfil, der leveres som input til linkeren. .lib-filer findes i to typer: standard statiske biblioteksfiler og COFF (Common Object File Format) importbiblioteksfiler. De statiske biblioteksfiler indeholder kompilerede .obj objektmoduler; importbiblioteksfilerne indeholder symbol- og ordinal-stubs, der peger på en .dll, hvilket giver linkeren de nødvendige oplysninger til at løse afhængigheder ved kørsel. Værktøjet LIB.EXE bruges til at oprette begge typer biblioteksfiler. På det binære niveau er en .lib et arkiv i ar-format, der starter med den 8-byte lange !<arch> signatur - den samme struktur, som bruges af Unix .a statiske biblioteker. Du kan inspicere indholdet med DUMPBIN /HEADERS eller ar -t.
Sikkerhed og tryghed
RISIKO: LOWEn .lib er data til build-tidspunktet, ikke noget Windows kører, så den udgør lille direkte risiko for slutbrugere. For udviklere er bekymringen tillid til forsyningskæden: et ondsindet eller manipuleret statisk bibliotek linker sin kode direkte ind i dit program, så brug kun .lib-filer fra betroede SDK-kilder og verificer tjeksummer/signaturer. De urelaterede spil/app .lib-arkiver er inaktive datafiler.
Formatdetaljer
kort fortalt- Spil- / applikationsarkiv (LIB) - Nogle spil og apps (f.eks. visse titlers asset-pakker) bruger .lib som en brugerdefineret data/arkiv-container, der ikke er relateret til compiler-biblioteker.
Programmer der åbner LIB-filer
Tekniske detaljer
dyb specifikation| Formattype | Arkiv af COFF-objektmoduler (statisk lib) eller import-stubs (import lib) |
| Magic bytes | 21 3C 61 72 63 68 3E 0A - ASCII "!<arch>\n" ved byte offset 0 |
| Containerstruktur | ar-arkivformat; samme 8-byte signaturfamilie som Unix .a statiske biblioteker |
| MIME-type | application/octet-stream |
| Indhold af statisk lib | COFF .obj-medlemmer indeholdende kompileret maskinkode, relokeringsposter og symboltabeller |
| Indhold af import lib | Symbolnavnetabel, DLL-navn og eksport-ordinal/navne-stubs - ingen eksekverbar maskinkode |
| Primær anvendelse | Linker-input: Forbruges af LINK.EXE eller ld til at løse symbolreferencer på build-tidspunktet |
| Værktøj til oprettelse | LIB.EXE (MSVC toolchain); også ar og dlltool (GNU Binutils / MinGW) |
| Inspektionsværktøjer | DUMPBIN.EXE /HEADERS, LIB.EXE /LIST, ar -t, nm |
| Symbolindeks | Første arkivmedlem er et symbolkort, der muliggør hurtig symbolopslag under linkning |
| Generering af import lib | Autogenereret af LINK.EXE ved bygning af en DLL; manuelt oprettet med LIB.EXE /DEF:<deffile> |
| Linker-kompatibilitet | Microsoft LINK.EXE, lld-link (LLVM); GNU ld via MinGW med delvis kompatibilitet |
| Målplatform | Primært Windows (Win32 / Win64); ældre MS-DOS toolchains |
| Kodning | Binær; COFF-poster er maskinords-justerede inde i ar-arkivmedlemmer |
| Unix-modstykke | Unix/Linux .a statisk biblioteksarkiv, oprettet med ar og forbrugt af ld |
| Udviklingshistorik | Microsoft-implementering af COFF; selve COFF stammer fra AT&T Unix System V (1983) |
| Udgivet | COFF lineage from Unix (1980s); MS .lib via Visual C++/MS-DOS toolchains, early 1990s |
| Åben standard | Ja · royaltyfri |
| Specifikation | learn.microsoft.com |
LIB-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om LIB-filer.