Was ist eine Datei mit der Erweiterung .a?


72

Ich habe dies heruntergeladen: https://github.com/mongodb/mongo-c-driver

Und jetzt versuche ich es in meinem C-Programm zu verwenden, aber ich weiß nicht, was ich mit den generierten .a-Dateien machen soll. Was sind Sie? Ich konnte keine Informationen finden, auch nicht im GCC-Handbuch.

Und ich habe es so gebaut:

Kann ich mit meinem C89-Programm auch C99- Bibliotheken verwenden?


Antworten:


91

.aDateien sind statische Bibliotheken, die normalerweise vom Archivierungsprogramm generiert werden . Normalerweise fügen Sie die Header-Dateien hinzu, die dieser statischen Bibliothek zugeordnet sind, und verknüpfen sie beim Kompilieren mit der Bibliothek.


Ich dachte, die .so-Dateien sind die Bibliotheksdateien. Muss ich dann beide verwenden?
Blub

10
@Blub: Es gibt sowohl statische als auch gemeinsam genutzte Bibliotheken. Unter Linux ist .a eine statische Bibliothek (Archiv), während .so eine gemeinsam genutzte Bibliothek (gemeinsam genutztes Objekt) ist.
Entspannen Sie

6
Sie können den Inhalt einer .astatischen Bibliothek mithilfe von anzeigen ar tv foo.a. Es ist normalerweise eine Sammlung von .oObjektdateien.
Keith Thompson

4
Wie sollen sie einfach googeln?
Ilia Sidorenko

5
Sie heißen Archivdateien
GWW

27

.aDateien werden mit dem arDienstprogramm erstellt und sind Bibliotheken. Um es mit zu verwenden gcc, sammeln Sie alles .a filesin einem lib/Ordner und verknüpfen Sie es dann mit -L lib/und -l<name of specific library>.

Das Sammeln aller .a-Dateien in lib/ist optional. Dies führt zu besser aussehenden Verzeichnissen mit einer guten Trennung von Code und Bibliotheken, IMHO.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.