.A

A-fil

Unix/Linux Static Library (ar archive)
Stil et spørgsmål
HURTIGT SVAR

En .a-fil er et statisk bibliotek, der bruges på Unix, Linux og macOS. Det er et arkiv i ar-format bestående af kompilerede objektfiler, som linkeren kopierer ind i dit program under build-processen. Du åbner den ikke som et dokument - inspicér den med «ar t lib.a» (liste over medlemmer) eller «nm lib.a» (liste over symboler). Et lille antal Ada-compilere bruger også .a til kildekode; hvis filen er almindelig tekst, er dette tilfældet.

Udvikler: Unix lineage (ar archiver); GNU binutils on Linux Kategori: Udviklerfiler Åben standard MIME: application/x-archive
ÅBNER PÅ Windows macOS Linux
Relateret: .DO · .MD · .HEX · .XSD

På denne side

19k+ filtyper indekseret
Sidst gennemset Sep 10, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er A-filformatet?

.a-filer indeholder systembiblioteker, der bruges af softwareudviklere. Sådanne filer findes almindeligvis på Unix-lignende systemer - herunder Linux og macOS - mens Microsoft Windows-systemer bruger .LIB-filer til samme formål. .a-filer leverer kompilerede funktioner og headere, som kildefiler kan referere til. Biblioteker med filtypenavnet .a kaldes almindeligvis for statiske biblioteker.

En .a-fil er teknisk set et arkiv i ar-format: en container, der indeholder en eller flere kompilerede objektfiler (.o). På Linux er medlemmerne .o-filer i ELF-format; på macOS er de Mach-O-objekter. Ethvert .a-arkiv begynder med den 8-byte ASCII-signatur !<arch> efterfulgt af en nylinje, hvilket gør det genkendeligt for filinspektionsværktøjer. Du kan liste arkivets indhold med ar t libname.a og inspicere eksporterede symboler med nm libname.a.

Computerprogrammer bruger to typer ressourcebiblioteker: statiske biblioteker og dynamiske biblioteker. Statiske biblioteker (.lib eller .a) er typisk større end dynamiske, fordi deres kode kompileres direkte ind i målprogrammet på link-tidspunktet. Dynamiske biblioteker - .SO-filer på Linux, .dylib på macOS - forbindes til et givet program ved dets eksekvering eller midt under programafviklingen. Programudviklere kan tilpasse deres kode til at fungere med forskellige dynamisk linkede biblioteker.

Værktøjet ar (en del af GNU Binutils på Linux) er standardværktøjet til at oprette og vedligeholde .a-arkiver. Fordi linkeren kun udtrækker de objektfiler, den har brug for, inkluderes ubrugt kode fra et statisk bibliotek ikke i den endelige eksekverbare fil.

Sikkerhed og tryghed

RISIKO: LOW

En .a er build-tidsdata, ikke noget operativsystemet 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 .a-filer fra betroede SDK-kilder og verificer tjeksummer/signaturer. En Ada-kildekode .a er almindelig tekst og ufarlig at åbne.

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNUnix/Linux Static Library (ar archive)
UDVIKLERUnix lineage (ar archiver); GNU binutils on Linuxsiden ar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
MIME-TYPEapplication/x-archive
TYPEar-format arkiv af kompilerede objektfiler (ELF/Mach-O .o medlemmer)
STANDARDÅben · royaltyfri
Dette filtypenavn bruges også af…
  • Ada-kildekodefil - Nogle Ada-compilere/projekter bruger .a (og .ada/.adb/.ads) til Ada-kildekode i almindelig tekst - dette er den betydning, den ældre database registrerede, men det er langt mindre almindeligt end det statiske bibliotek.
MAGIC BYTES · FILSIGNATUR
OFFSET
0001020304050607
HEX
213C617263683E0A
ASCII
!<arch>·
Et .a statisk bibliotek er et arkiv i ar-format og begynder med den 8-byte signatur «!<arch>\n» (21 3C 61 72 63 68 3E 0A). Dets medlemmer er kompilerede objektfiler (ELF .o på Linux, Mach-O på macOS). Dette er den samme arkivfamilie som en Windows .lib. (En Ada-kildekodefil, den anden betydning af «.a», er almindelig tekst uden signatur.)

Programmer der åbner A-filer

Windows2 apps
Microsoft Visual Studio Freemium VS bruger .lib, ikke Unix .a. Kun nyttig, hvis .a-filen er Ada-kildekode (rediger som tekst) eller via WSL/MinGW til cross-builds - ikke en indfødt åbner.
7-Zip Open-source Åbn .a-filen som et arkiv for at gennemse/udtrække dens objektmedlemmer (det er et ar-arkiv). Build mod den kræver en matchende toolchain (MinGW/WSL).
macOS2 apps
ar / nm (Xcode command line tools) Gratis Samme toolchain: «ar t lib.a» / «nm lib.a». Medlemmer er Mach-O-objekter. Installer med «xcode-select --install».
BBEdit / TextEdit Freemium Kun til Ada-kildekode .a-filer - åbn som almindelig tekst. Et binært statisk bibliotek vil ligne volapyk.
Linux3 apps
binutils (ar / nm / objdump) Open-source «ar t libfoo.a» lister medlemmer; «nm libfoo.a» lister symboler; «ar x libfoo.a» udtrækker .o-filerne. En .a linkes, åbnes ikke.
GCC / Clang (linker) Open-source Link mod den under et build: «gcc main.c -L. -lfoo» trækker libfoo.a ind i den eksekverbare fil.
GVim / any text editor Open-source Kun hvis .a-filen faktisk er Ada-KILDEtekst (den anden betydning) - rediger den derefter som enhver kildekodefil.

Tekniske detaljer

dyb specifikation
Filsignatur«!<arch>\n» (hex: 21 3C 61 72 63 68 3E 0A) ved byte offset 0
Arkivformatar (Unix Archiver) - samme containerformat på tværs af Linux, macOS og BSD-systemer
MIME-typeapplication/x-archive
Medlemsfiltype (Linux)ELF relokerbare objektfiler (.o)
Medlemsfiltype (macOS)Mach-O relokerbare objektfiler (.o)
Header-størrelse pr. medlem60 bytes - ASCII-felter: navn (16 B), tidsstempel (12 B), UID (6 B), GID (6 B), tilstand (8 B), størrelse (10 B), slutmarkør (2 B)
Symbolindeks-medlemGNU ar bruger et medlem navngivet «/»; BSD/macOS ar bruger «__SYMDEF» - mapper symbolnavne til medlems-offsets for hurtig linkning
Navngivningskonventionlib<navn>.a - f.eks. libz.a, libssl.a, libpthread.a; «lib»-præfikset kræves af linkerens -l flag
KomprimeringIngen - medlemsobjektfiler gemmes ordret, ukomprimeret
Link-tidsadfærdLinkeren udtrækker kun de .o-medlemmer, der opfylder uafklarede symboler; ubrugte medlemmer inkluderes ikke i den resulterende eksekverbare fil
Standardværktøj til oprettelsear (GNU Binutils på Linux; LLVM ar / BSD ar på macOS); kaldes som: ar rcs libname.a file1.o file2.o
Værktøj til symbolinspektionnm - lister eksporterede, udefinerede og lokale symboler; f.eks. nm libname.a
Værktøj til indholdsinspektionar t libname.a lister medlemmer; ar x libname.a udtrækker dem; objdump / otool disassemblerer medlemskode
Windows-modstykke.lib statisk bibliotek (COFF/PE-format); Windows cross-compilere såsom MinGW producerer også .a-filer
Typisk filstørrelsesområdeVarierer fra få KB (lille hjælpebibliotek) til hundredvis af MB (f.eks. libclang_rt.a eller en fuld libc.a)
Udgivetar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
Åben standardJa · royaltyfri
Specifikationen.wikipedia.org

A-konverteringer

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med A-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag

Ingen spørgsmål endnu - vær den første til at spørge om A-filer.

Ofte stillede spørgsmål

Hvad er en .a-fil?
På Linux/macOS er det et statisk bibliotek - et «arkiv» (ar-format) af kompilerede objektfiler, som linkeren kopierer ind i dit program under build-processen. Windows-modstykket er .lib. (Nogle få Ada-compilere bruger også .a til kildekode.)
Hvordan åbner jeg en .a-fil?
Du åbner den ikke som et dokument - linkeren bruger den under et build. For at inspicere den skal du køre «ar t lib.a» for at liste medlemmer og «nm lib.a» for at liste symboler. Hvis .a-filen faktisk er Ada-kildekode, skal den åbnes i en teksteditor.
Hvad er forskellen på .a og .so?
Et statisk bibliotek (.a) bages ind i din eksekverbare fil på build-tidspunktet, så der er ingen afhængighed under kørsel. Et delt bibliotek (.so på Linux, .dylib på macOS) indlæses separat under kørsel og deles mellem programmer.
Er en .a det samme som en Windows .lib?
De deler ar-arkivformatet, men indeholder forskellige objekttyper (ELF/Mach-O vs. COFF), så de kan ikke ombyttes. Du kan ikke bruge en Linux .a på Windows ved blot at omdøbe den - genopbyg fra kildekoden til målplatformen.
Hvordan udtrækker jeg .o-filer fra en .a?
Kør «ar x libfoo.a» (binutils) for at udtrække dens objektmedlemmer, eller åbn .a-filen i 7-Zip, da det er et ar-arkiv.
Min .a-fil er tekst, ikke et bibliotek - hvorfor?
Så er det den anden betydning af .a: Ada-kildekode. Nogle Ada-compilere bruger .a (sammen med .ada/.adb/.ads). Åbn den i en hvilken som helst teksteditor eller kompilér den med en GNAT/Ada-toolchain.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

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

Relaterede filtyper

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

Gratis filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å