.A

Plik A

Unix/Linux Static Library (ar archive)
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik .a to biblioteka statyczna używana w systemach Unix, Linux i macOS. Jest to archiwum w formacie ar zawierające skompilowane pliki obiektowe, które linker kopiuje do programu w czasie budowania. Nie otwiera się go jak dokumentu - można go sprawdzić poleceniem „ar t lib.a” (lista elementów) lub „nm lib.a” (lista symboli). Niewielka liczba kompilatorów Ada również używa rozszerzenia .a dla kodu źródłowego; jeśli plik jest zwykłym tekstem, mamy do czynienia z tym przypadkiem.

Deweloper: Unix lineage (ar archiver); GNU binutils on Linux Kategoria: Pliki developerskie Otwarty standard MIME: application/x-archive
OTWIERA SIĘ NA Windows macOS Linux
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Sep 10, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku A?

Pliki .a zawierają biblioteki systemowe używane przez programistów. Takie pliki są powszechnie spotykane w systemach uniksopodobnych - w tym Linux i macOS - podczas gdy systemy Microsoft Windows używają plików .LIB do tego samego celu. Pliki .a dostarczają skompilowane funkcje i nagłówki, do których mogą odwoływać się pliki źródłowe. Biblioteki z rozszerzeniem .a są powszechnie nazywane bibliotekami statycznymi.

Plik .a jest technicznie archiwum w formacie ar: kontenerem przechowującym jeden lub więcej skompilowanych plików obiektowych (.o). W systemie Linux elementami są pliki .o w formacie ELF; w macOS są to obiekty Mach-O. Każde archiwum .a zaczyna się od 8-bajtowej sygnatury ASCII !<arch> po której następuje znak nowej linii, co czyni je rozpoznawalnym dla narzędzi do inspekcji plików. Możesz wyświetlić zawartość archiwum za pomocą ar t libname.a i sprawdzić wyeksportowane symbole za pomocą nm libname.a.

Programy komputerowe korzystają z dwóch rodzajów bibliotek zasobów: bibliotek statycznych i bibliotek dynamicznych. Biblioteki statyczne (.lib lub .a) są zazwyczaj większe niż dynamiczne, ponieważ ich kod jest kompilowany bezpośrednio do docelowego programu w czasie linkowania. Biblioteki dynamiczne - pliki .SO w systemie Linux, .dylib w macOS - są łączone z danym programem w momencie jego uruchomienia lub w trakcie wykonywania programu. Programiści mogą dostosować swój kod do pracy z różnymi bibliotekami łączonymi dynamicznie.

Narzędzie ar (część GNU Binutils w systemie Linux) jest standardowym narzędziem do tworzenia i utrzymywania archiwów .a. Ponieważ linker wyodrębnia tylko te pliki obiektowe, których potrzebuje, nieużywany kod z biblioteki statycznej nie jest dołączany do końcowego pliku wykonywalnego.

Bezpieczeństwo

RYZYKO: LOW

Plik .a to dane z czasu budowania, a nie coś, co system operacyjny uruchamia, więc stanowi niewielkie bezpośrednie ryzyko dla użytkowników końcowych. Dla programistów problemem jest zaufanie do łańcucha dostaw: złośliwa lub zmodyfikowana biblioteka statyczna linkuje swój kod bezpośrednio do programu, dlatego należy używać plików .a tylko z zaufanych źródeł SDK i weryfikować sumy kontrolne/podpisy. Plik .a będący źródłem Ada jest zwykłym tekstem i jest bezpieczny do otwarcia.

Szczegóły formatu

w pigułce
PEŁNA NAZWAUnix/Linux Static Library (ar archive)
DEWELOPERUnix lineage (ar archiver); GNU binutils on Linuxod ar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
TYP MIMEapplication/x-archive
TYParchiwum w formacie ar skompilowanych plików obiektowych (elementy ELF/Mach-O .o)
STANDARDOtwarty · bezpłatny
POWIĄZANE.do.md.hex.xsd
To rozszerzenie jest również używane przez…
  • Plik kodu źródłowego Ada - Niektóre kompilatory/projekty Ada używają .a (oraz .ada/.adb/.ads) dla zwykłego tekstu źródłowego Ada - jest to znaczenie zarejestrowane w starszych bazach danych, ale jest znacznie rzadsze niż biblioteka statyczna.
MAGICZNE BAJTY · SYGNATURA PLIKU
OFFSET
0001020304050607
HEX
213C617263683E0A
ASCII
!<arch>·
Biblioteka statyczna .a jest archiwum w formacie ar i zaczyna się od 8-bajtowej sygnatury „!<arch>\n” (21 3C 61 72 63 68 3E 0A). Jej elementami są skompilowane pliki obiektowe (ELF .o w Linux, Mach-O w macOS). Jest to ta sama rodzina archiwów co Windows .lib. (Plik źródłowy Ada, drugie znaczenie „.a”, jest zwykłym tekstem bez sygnatury.)

Programy otwierające pliki A

Windows2 apps
Microsoft Visual Studio Freemium VS używa .lib, a nie uniksowych .a. Przydatne tylko wtedy, gdy .a jest źródłem Ada (edycja jako tekst) lub przez WSL/MinGW do budowania skrośnego - nie jest to natywna aplikacja do otwierania.
7-Zip Open-source Otwórz .a jako archiwum, aby przeglądać/wyodrębniać jego elementy obiektowe (jest to archiwum ar). Budowanie z jego użyciem wymaga pasującego zestawu narzędzi (MinGW/WSL).
macOS2 apps
ar / nm (Xcode command line tools) Darmowy Ten sam zestaw narzędzi: „ar t lib.a” / „nm lib.a”. Elementy to obiekty Mach-O. Zainstaluj za pomocą „xcode-select --install”.
BBEdit / TextEdit Freemium Tylko dla plików .a będących źródłem Ada (also_used_by) - otwórz jako zwykły tekst. Binarna biblioteka statyczna będzie wyglądać jak nieczytelne znaki.
Linux3 apps
binutils (ar / nm / objdump) Open-source „ar t libfoo.a” wyświetla listę elementów; „nm libfoo.a” wyświetla listę symboli; „ar x libfoo.a” wyodrębnia pliki .o. Plik .a jest linkowany, a nie otwierany.
GCC / Clang (linker) Open-source Linkowanie podczas budowania: „gcc main.c -L. -lfoo” wciąga libfoo.a do pliku wykonywalnego.
GVim / any text editor Open-source Tylko jeśli plik .a jest w rzeczywistości tekstem źródłowym Ada (znaczenie also_used_by) - wtedy edytuj go jak każdy plik źródłowy.

Szczegóły techniczne

specyfikacja
Sygnatura pliku„!<arch>\n” (hex: 21 3C 61 72 63 68 3E 0A) na offsecie bajtu 0
Format archiwumar (Unix Archiver) - ten sam format kontenera w systemach Linux, macOS i BSD
Typ MIMEapplication/x-archive
Typ pliku elementu (Linux)Pliki obiektowe relokowalne ELF (.o)
Typ pliku elementu (macOS)Pliki obiektowe relokowalne Mach-O (.o)
Rozmiar nagłówka elementu60 bajtów - pola ASCII: nazwa (16 B), znacznik czasu (12 B), UID (6 B), GID (6 B), tryb (8 B), rozmiar (10 B), znacznik końca (2 B)
Element indeksu symboliGNU ar używa elementu o nazwie „/”; BSD/macOS ar używa „__SYMDEF” - mapuje nazwy symboli na offsety elementów dla szybkiego linkowania
Konwencja nazewnictwalib<nazwa>.a - np. libz.a, libssl.a, libpthread.a; prefiks „lib” jest wymagany przez flagę -l linkera
KompresjaBrak - pliki obiektowe elementów są przechowywane dosłownie, bez kompresji
Zachowanie w czasie linkowaniaLinker wyodrębnia tylko te elementy .o, które zaspokajają nierozwiązane symbole; nieużywane elementy nie są dołączane do wyjściowego pliku wykonywalnego
Standardowe narzędzie do tworzeniaar (GNU Binutils w Linux; LLVM ar / BSD ar w macOS); wywoływane jako: ar rcs libname.a file1.o file2.o
Narzędzie do inspekcji symbolinm - wyświetla listę symboli wyeksportowanych, niezdefiniowanych i lokalnych; np. nm libname.a
Narzędzie do inspekcji zawartościar t libname.a wyświetla listę elementów; ar x libname.a wyodrębnia je; objdump / otool deasembluje kod elementów
Odpowiednik w WindowsBiblioteka statyczna .lib (format COFF/PE); kompilatory skrośne dla Windows, takie jak MinGW, również generują pliki .a
Typowy zakres rozmiaru plikuOd kilku KB (mała biblioteka narzędziowa) do setek MB (np. libclang_rt.a lub pełna libc.a)
Wydanoar archive format from early Unix (1970s); standard static-library extension on Unix/Linux/macOS
Otwarty standardTak · bezpłatny (royalty-free)
Specyfikacjaen.wikipedia.org

Konwersje A

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami A. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki A.

Najczęściej zadawane pytania

Co to jest plik .a?
W systemach Linux/macOS jest to biblioteka statyczna - „archiwum” (format ar) skompilowanych plików obiektowych, które linker kopiuje do programu w czasie budowania. Odpowiednikiem w systemie Windows jest .lib. (Niektóre kompilatory Ada również używają .a dla kodu źródłowego).
Jak otworzyć plik .a?
Nie otwiera się go jak dokumentu - linker używa go podczas budowania. Aby go sprawdzić, uruchom „ar t lib.a”, aby wyświetlić listę elementów, i „nm lib.a”, aby wyświetlić listę symboli. Jeśli plik .a jest w rzeczywistości źródłem Ada, otwórz go w edytorze tekstu.
Jaka jest różnica między .a a .so?
Biblioteka statyczna (.a) jest „wypalana” w pliku wykonywalnym w czasie budowania, więc nie ma zależności w czasie wykonywania. Biblioteka współdzielona (.so w Linux, .dylib w macOS) jest ładowana oddzielnie w czasie wykonywania i współdzielona między programami.
Czy .a to to samo co Windows .lib?
Dzielą one format archiwum ar, ale przechowują różne typy obiektów (ELF/Mach-O vs COFF), więc nie są wymienne. Nie można użyć pliku .a z Linux w Windows poprzez zmianę nazwy - należy przebudować go ze źródeł dla platformy docelowej.
Jak wyodrębnić pliki .o z pliku .a?
Uruchom „ar x libfoo.a” (binutils), aby wyodrębnić jego elementy obiektowe, lub otwórz plik .a w programie 7-Zip, ponieważ jest to archiwum ar.
Mój plik .a jest tekstem, a nie biblioteką - dlaczego?
Wtedy jest to drugie znaczenie rozszerzenia .a: kod źródłowy Ada. Niektóre kompilatory Ada używają .a (obok .ada/.adb/.ads). Otwórz go w dowolnym edytorze tekstu lub skompiluj za pomocą zestawu narzędzi GNAT/Ada.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

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

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z