.A

A-fil

Unix/Linux Static Library (ar archive)
Ställ en fråga
SNABBT SVAR

En .a-fil är ett statiskt bibliotek som används på Unix, Linux och macOS. Det är ett arkiv i ar-format bestående av kompilerade objektfiler som länkaren kopierar in i ditt program vid byggtillfället. Du öppnar den inte som ett dokument - inspektera den med «ar t lib.a» (lista medlemmar) eller «nm lib.a» (lista symboler). Ett litet antal Ada-kompilatorer använder också .a för källkod; om filen är vanlig text är så fallet.

Utvecklare: Unix lineage (ar archiver); GNU binutils on Linux Kategori: Utvecklarfiler Öppen standard MIME: application/x-archive
ÖPPNAS PÅ Windows macOS Linux
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Sep 10, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet A?

.a-filer innehåller systembibliotek som används av programvaruutvecklare. Sådana filer finns vanligtvis på Unix-liknande system - inklusive Linux och macOS - medan Microsoft Windows-system använder .LIB-filer för samma ändamål. .a-filer tillhandahåller kompilerade funktioner och headers som kan refereras av källfiler. Bibliotek med filändelsen .a kallas vanligtvis för statiska bibliotek.

En .a-fil är tekniskt sett ett arkiv i ar-format: en behållare som innehåller en eller flera kompilerade objektfiler (.o). På Linux är medlemmarna .o-filer i ELF-format; på macOS är de Mach-O-objekt. Varje .a-arkiv börjar med den 8-byte långa ASCII-signaturen !<arch> följt av en nyrad, vilket gör den igenkännbar för filinspektionsverktyg. Du kan lista arkivets innehåll med ar t libname.a och inspektera exporterade symboler med nm libname.a.

Datorprogram använder två typer av resursbibliotek: statiska bibliotek och dynamiska bibliotek. Statiska bibliotek (.lib eller .a) är vanligtvis större än dynamiska eftersom deras kod kompileras direkt in i målprogrammet vid länkning. Dynamiska bibliotek - .SO-filer på Linux, .dylib på macOS - ansluts till ett givet program vid dess körning eller mitt under programkörningen. Programutvecklare kan anpassa sin kod för att fungera med olika dynamiskt länkade bibliotek.

Verktyget ar (en del av GNU Binutils på Linux) är standardverktyget för att skapa och underhålla .a-arkiv. Eftersom länkaren endast extraherar de objektfiler den behöver, inkluderas inte oanvänd kod från ett statiskt bibliotek i den slutliga körbara filen.

Säkerhet & trygghet

RISK: LOW

En .a-fil är data för byggtillfället, inte något som operativsystemet kör, så den utgör liten direkt risk för slutanvändare. För utvecklare är oron förtroende för leveranskedjan: ett skadligt eller manipulerat statiskt bibliotek länkar sin kod direkt in i ditt program, så använd endast .a-filer från betrodda SDK-källor och verifiera kontrollsummor/signaturer. En .a-fil med Ada-källkod är vanlig text och ofarlig att öppna.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNUnix/Linux Static Library (ar archive)
UTVECKLAREUnix lineage (ar archiver); GNU binutils on Linuxsedan ar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
MIME-TYPapplication/x-archive
TYPar-format arkiv av kompilerade objektfiler (ELF/Mach-O .o-medlemmar)
STANDARDÖppen · royaltyfri
Detta filtillägg används också av…
  • Ada-källkodsfil - Vissa Ada-kompilatorer/projekt använder .a (och .ada/.adb/.ads) för Ada-källkod i klartext - detta är den betydelse som den äldre databasen registrerade, men den är betydligt mindre vanlig än det statiska biblioteket.
MAGIC BYTES · FILSIGNATUR
OFFSET
0001020304050607
HEX
213C617263683E0A
ASCII
!<arch>·
Ett statiskt .a-bibliotek är ett arkiv i ar-format och börjar med den 8-byte långa signaturen «!<arch>\n» (21 3C 61 72 63 68 3E 0A). Dess medlemmar är kompilerade objektfiler (ELF .o på Linux, Mach-O på macOS). Detta är samma arkivfamilj som en Windows .lib. (En Ada-källkodsfil, den andra betydelsen av «.a», är vanlig text utan signatur.)

Program som öppnar A-filer

Windows2 apps
Microsoft Visual Studio Freemium VS använder .lib, inte Unix .a. Endast användbart om .a-filen är Ada-källkod (redigera som text) eller via WSL/MinGW för korsbyggen - inte en infödd öppnare.
7-Zip Öppen källkod Öppna .a-filen som ett arkiv för att bläddra i/extrahera dess objektmedlemmar (det är ett ar-arkiv). Att bygga mot den kräver en matchande verktygskedja (MinGW/WSL).
macOS2 apps
ar / nm (Xcode command line tools) Gratis Samma verktygskedja: «ar t lib.a» / «nm lib.a». Medlemmar är Mach-O-objekt. Installera med «xcode-select --install».
BBEdit / TextEdit Freemium Endast för .a-filer med Ada-källkod - öppna som vanlig text. Ett binärt statiskt bibliotek kommer att se ut som skräp.
Linux3 apps
binutils (ar / nm / objdump) Öppen källkod «ar t libfoo.a» listar medlemmar; «nm libfoo.a» listar symboler; «ar x libfoo.a» extraherar .o-filerna. En .a-fil länkas, den öppnas inte.
GCC / Clang (linker) Öppen källkod Länka mot den under ett bygge: «gcc main.c -L. -lfoo» drar in libfoo.a i den körbara filen.
GVim / any text editor Öppen källkod Endast om .a-filen faktiskt är Ada-källkod (den alternativa användningen) - redigera den då som vilken källkodsfil som helst.

Tekniska detaljer

djup specifikation
Filsignatur«!<arch>\n» (hex: 21 3C 61 72 63 68 3E 0A) vid byte-offset 0
Arkivformatar (Unix Archiver) - samma behållarformat över Linux, macOS och BSD-system
MIME-typapplication/x-archive
Medlemsfiltyp (Linux)ELF-relokerbara objektfiler (.o)
Medlemsfiltyp (macOS)Mach-O-relokerbara objektfiler (.o)
Header-storlek per medlem60 bytes - ASCII-fält: namn (16 B), tidsstämpel (12 B), UID (6 B), GID (6 B), läge (8 B), storlek (10 B), slutmarkör (2 B)
Symbolindex-medlemGNU ar använder en medlem vid namn «/»; BSD/macOS ar använder «__SYMDEF» - mappar symbolnamn till medlems-offsets för snabb länkning
Namnkonventionlib<namn>.a - t.ex. libz.a, libssl.a, libpthread.a; prefixet «lib» krävs av länkarens -l flagga
KomprimeringIngen - medlemsobjektfiler lagras ordagrant, okomprimerade
Beteende vid länkningLänkaren extraherar endast de .o-medlemmar som tillfredsställer oavlösta symboler; oanvända medlemmar inkluderas inte i den resulterande körbara filen
Standardverktyg för skapandear (GNU Binutils på Linux; LLVM ar / BSD ar på macOS); anropas som: ar rcs libname.a file1.o file2.o
Verktyg för symbolinspektionnm - listar exporterade, odefinierade och lokala symboler; t.ex. nm libname.a
Verktyg för innehållsinspektionar t libname.a listar medlemmar; ar x libname.a extraherar dem; objdump / otool disassemblerar medlemskod
Windows-motsvarighet.lib statiskt bibliotek (COFF/PE-format); Windows-korskompilatorer som MinGW producerar också .a-filer
Typiskt storleksintervallVarierar från några KB (litet verktygsbibliotek) till hundratals MB (t.ex. libclang_rt.a eller en fullständig libc.a)
Släpptar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
Öppen standardJa · royaltyfri
Specifikationen.wikipedia.org

A-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med A-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om A-filer.

Vanliga frågor

Vad är en .a-fil?
På Linux/macOS är det ett statiskt bibliotek - ett «arkiv» (ar-format) av kompilerade objektfiler som länkaren kopierar in i ditt program vid byggtillfället. Motsvarigheten i Windows är .lib. (Vissa Ada-kompilatorer använder också .a för källkod.)
Hur öppnar jag en .a-fil?
Du öppnar den inte som ett dokument - länkaren använder den under ett bygge. För att inspektera den, kör «ar t lib.a» för att lista medlemmar och «nm lib.a» för att lista symboler. Om .a-filen faktiskt är Ada-källkod, öppna den i en textredigerare.
Vad är skillnaden mellan .a och .so?
Ett statiskt bibliotek (.a) bakas in i din körbara fil vid byggtillfället, så det finns inget beroende vid körning. Ett delat bibliotek (.so på Linux, .dylib på macOS) laddas separat vid körning och delas mellan program.
Är en .a samma sak som en Windows .lib?
De delar arkivformatet ar men innehåller olika objekttyper (ELF/Mach-O kontra COFF), så de är inte utbytbara. Du kan inte använda en Linux .a på Windows genom att döpa om den - bygg om från källkoden för målplattformen.
Hur extraherar jag .o-filer från en .a?
Kör «ar x libfoo.a» (binutils) för att extrahera dess objektmedlemmar, eller öppna .a-filen i 7-Zip eftersom det är ett ar-arkiv.
Min .a-fil är text, inte ett bibliotek - varför?
Då är det den andra betydelsen av .a: Ada-källkod. Vissa Ada-kompilatorer använder .a (tillsammans med .ada/.adb/.ads). Öppna den i valfri textredigerare eller kompilera den med en GNAT/Ada-verktygskedja.

Referenser

1Wikipedia - ar (Unix) archive formaten.wikipedia.org
2GNU binutils - ar documentationsourceware.org

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.MDMarkdown Document
6.RPMSGRestricted Permission Message
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.PRDXSoftMaker Presentations Document
10.EXEWindows Executable (Portable Executable)

Relaterade filtillägg

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö