.A

A-fil

Unix/Linux Static Library (ar archive)
Still et spørsmål
HURTIGSVAR

En .a-fil er et statisk bibliotek som brukes på Unix, Linux og macOS. Det er et arkiv i ar-format som inneholder kompilerte objektfiler som linkeren kopierer inn i programmet ditt ved bygging. Du åpner den ikke som et dokument - inspiser den med «ar t lib.a» (list opp medlemmer) eller «nm lib.a» (list opp symboler). Et lite antall Ada-kompilatorer bruker også .a for kildekode; hvis filen er ren tekst, er det tilfelle.

Utvikler: Unix lineage (ar archiver); GNU binutils on Linux Kategori: Utviklerfiler Åpen standard MIME: application/x-archive
ÅPNES PÅ Windows macOS Linux
Relatert: .DO · .MD · .HEX · .XSD

På denne siden

19k+ filendelser indeksert
Sist vurdert Sep 10, 2026

Usikker på hva filen din er?

Slipp hvilken som helst fil inn i vår identifikator - vi leser bare de første bytene for å navngi formatet.

Identifiser en fil

Hva er A-filformatet?

.a-filer inneholder systembiblioteker som brukes av programvareutviklere. Slike filer finnes vanligvis på Unix-lignende systemer - inkludert Linux og macOS - mens Microsoft Windows-systemer bruker .LIB-filer til samme formål. .a-filer inneholder kompilerte funksjoner og headere som kan refereres til av kildekodefiler. Biblioteker med filendelsen .a blir vanligvis referert til som statiske biblioteker.

En .a-fil er teknisk sett et arkiv i ar-format: en beholder som inneholder én eller flere kompilerte objektfiler (.o). På Linux er medlemmene .o-filer i ELF-format; på macOS er de Mach-O-objekter. Hvert .a-arkiv begynner med den 8-byte lange ASCII-signaturen !<arch> etterfulgt av et linjeskift, noe som gjør den gjenkjennelig for filinspeksjonsverktøy. Du kan liste opp arkivinnholdet med ar t libname.a og inspisere eksporterte symboler med nm libname.a.

Dataprogrammer bruker to typer ressursbiblioteker: statiske biblioteker og dynamiske biblioteker. Statiske biblioteker (.lib eller .a) er vanligvis større enn dynamiske fordi koden deres kompileres direkte inn i målprogrammet ved linking. Dynamiske biblioteker - .SO-filer på Linux, .dylib på macOS - kobles til et gitt program når det kjøres eller midt under programutførelsen. Programutviklere kan tilpasse koden sin til å fungere med ulike dynamisk-linkede biblioteker.

Verktøyet ar (en del av GNU Binutils på Linux) er standardverktøyet for å opprette og vedlikeholde .a-arkiver. Fordi linkeren bare trekker ut objektfilene den trenger, blir ikke ubrukt kode fra et statisk bibliotek inkludert i den endelige kjørbare filen.

Sikkerhet og trygghet

RISIKO: LOW

En .a-fil er data for bygging, ikke noe operativsystemet kjører, så den utgjør liten direkte risiko for sluttbrukere. For utviklere er bekymringen tillit til forsyningskjeden: et ondsinnet eller manipulert statisk bibliotek linker koden sin rett inn i programmet ditt, så bruk bare .a-filer fra pålitelige SDK-kilder og verifiser sjekksummer/signaturer. En Ada-kildekode .a-fil er ren tekst og ufarlig å åpne.

Formatdetaljer

i et nøtteskall
FULLT NAVNUnix/Linux Static Library (ar archive)
UTVIKLERUnix 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 av kompilerte objektfiler (ELF/Mach-O .o-medlemmer)
STANDARDÅpen · royalty-fri
Denne filendelsen brukes også av…
  • Ada kildekodefil - Noen Ada-kompilatorer/prosjekter bruker .a (og .ada/.adb/.ads) for Ada-kildekode i ren tekst - dette er betydningen den eldre databasen registrerte, men det er langt mindre vanlig enn det statiske biblioteket.
MAGIC BYTES · FILSIGNATUR
OFFSET
0001020304050607
HEX
213C617263683E0A
ASCII
!<arch>·
Et .a statisk bibliotek er et arkiv i ar-format og begynner med den 8-byte signaturen «!<arch>\n» (21 3C 61 72 63 68 3E 0A). Medlemmene er kompilerte objektfiler (ELF .o på Linux, Mach-O på macOS). Dette er samme arkivfamilie som en Windows .lib. (En Ada-kildekodefil, den andre betydningen av «.a», er ren tekst uten signatur.)

Programmer som åpner A-filer

Windows2 apps
Microsoft Visual Studio Freemium VS bruker .lib, ikke Unix .a. Nyttig bare hvis .a-filen er Ada-kildekode (rediger som tekst) eller via WSL/MinGW for kryssbygging - ikke en innebygd åpner.
7-Zip Åpen kildekode Åpne .a-filen som et arkiv for å bla i eller trekke ut objektmedlemmene (det er et ar-arkiv). Bygging mot den krever en samsvarende verktøykjede (MinGW/WSL).
macOS2 apps
ar / nm (Xcode command line tools) Gratis Samme verktøykjede: «ar t lib.a» / «nm lib.a». Medlemmer er Mach-O-objekter. Installer med «xcode-select --install».
BBEdit / TextEdit Freemium Bare for Ada-kildekode .a-filer (alternativ bruk) - åpne som ren tekst. Et binært statisk bibliotek vil se ut som søppel.
Linux3 apps
binutils (ar / nm / objdump) Åpen kildekode «ar t libfoo.a» lister medlemmer; «nm libfoo.a» lister symboler; «ar x libfoo.a» trekker ut .o-filene. En .a-fil linkes, ikke åpnes.
GCC / Clang (linker) Åpen kildekode Link mot den under bygging: «gcc main.c -L. -lfoo» trekker libfoo.a inn i den kjørbare filen.
GVim / any text editor Åpen kildekode Bare hvis .a-filen faktisk er Ada-kildekode (den alternative bruken) - da redigeres den som en vanlig kildekodefil.

Tekniske detaljer

dyp spesifikasjon
Filsignatur«!<arch>\n» (hex: 21 3C 61 72 63 68 3E 0A) ved byte-offset 0
Arkivformatar (Unix Archiver) - samme beholderformat på tvers av 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 per medlem60 bytes - ASCII-felt: navn (16 B), tidsstempel (12 B), UID (6 B), GID (6 B), modus (8 B), størrelse (10 B), sluttmarkør (2 B)
Symbolindeks-medlemGNU ar bruker et medlem kalt «/»; BSD/macOS ar bruker «__SYMDEF» - mapper symbolnavn til medlem-offsets for rask linking
Navnekonvensjonlib<navn>.a - f.eks. libz.a, libssl.a, libpthread.a; «lib»-prefikset kreves av linkerens -l flagg
KomprimeringIngen - medlemsobjektfiler lagres uendret, ukomprimert
Oppførsel ved linkingLinkeren trekker bare ut .o-medlemmene som tilfredsstiller uoppløste symboler; ubrukte medlemmer inkluderes ikke i den ferdige kjørbare filen
Standardverktøy for opprettelsear (GNU Binutils på Linux; LLVM ar / BSD ar på macOS); kjøres som: ar rcs libname.a file1.o file2.o
Verktøy for symbolinspeksjonnm - lister eksporterte, udefinerte og lokale symboler; f.eks. nm libname.a
Verktøy for innholdsinspeksjonar t libname.a lister medlemmer; ar x libname.a trekker dem ut; objdump / otool disassemblerer medlemskode
Windows-ekvivalent.lib statisk bibliotek (COFF/PE-format); Windows-krysskompilatorer som MinGW produserer også .a-filer
Typisk filstørrelseVarierer fra noen få KB (lite verktøybibliotek) til hundrevis av MB (f.eks. libclang_rt.a eller en full libc.a)
Utgittar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
Åpen standardJa · royalty-fri
Spesifikasjonen.wikipedia.org

A-konverteringer

Spørsmål og svar fra fellesskapet

spurt av brukere
Still et raskt spørsmål
Få hjelp fra folk som jobber med A-filer. Vær spesifikk - inkluder systemet ditt og programvareversjon.
Ingen konto nødvendig · svar vanligvis innen en dag

Ingen spørsmål ennå - vær den første til å spørre om A-filer.

Ofte stilte spørsmål

Hva er en .a-fil?
På Linux/macOS er det et statisk bibliotek - et «arkiv» (ar-format) av kompilerte objektfiler som linkeren kopierer inn i programmet ditt ved bygging. Windows-ekvivalenten er .lib. (Noen få Ada-kompilatorer bruker også .a for kildekode.)
Hvordan åpner jeg en .a-fil?
Du åpner den ikke som et dokument - linkeren bruker den under bygging. For å inspisere den, kjør «ar t lib.a» for å liste medlemmer og «nm lib.a» for å liste symboler. Hvis .a-filen faktisk er Ada-kildekode, åpner du den i et tekstredigeringsprogram.
Hva er forskjellen mellom .a og .so?
Et statisk bibliotek (.a) bakes inn i den kjørbare filen din ved bygging, så det er ingen avhengighet ved kjøretid. Et delt bibliotek (.so på Linux, .dylib på macOS) lastes separat ved kjøretid og deles mellom programmer.
Er en .a det samme som en Windows .lib?
De deler ar-arkivformatet, men inneholder ulike objekttyper (ELF/Mach-O vs COFF), så de er ikke utskiftbare. Du kan ikke bruke en Linux .a på Windows ved å gi den nytt navn - bygg på nytt fra kildekoden for målplattformen.
Hvordan trekker jeg ut .o-filene fra en .a?
Kjør «ar x libfoo.a» (binutils) for å trekke ut objektmedlemmene, eller åpne .a-filen i 7-Zip siden det er et ar-arkiv.
Min .a-fil er tekst, ikke et bibliotek - hvorfor?
Da er det den andre betydningen av .a: Ada-kildekode. Noen Ada-kompilatorer bruker .a (sammen med .ada/.adb/.ads). Åpne den i et hvilket som helst tekstredigeringsprogram eller kompiler den med en GNAT/Ada-verktøykjede.

Referanser

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

Utforsk videre

på tvers av databasen

Populære filendelser denne uken

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

Relaterte filendelser

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

Gratis filverktøy

En filidentifikator og bildekonvertering i nettleseren - alt kjører på din enhet.

Åpne verktøykassen

Bla i filendelser A-Å