„lib“-Präfix für Bibliotheken

Lesezeit: 2 Minuten

Aus http://www.adp-gmbh.ch/cpp/gcc/create_lib.html:

Hinweis: Die Bibliothek muss mit den drei Buchstaben beginnen lib und haben das Suffix .a.

Ist dies eine Betriebssystemkonvention oder a gcc/ar Marotte? Xcode scheint in der Lage zu sein, Bibliotheken ohne das Präfix zu erstellen. Was macht es anders?

  • Es war immer mein Verständnis, dass dies eine Namenskonvention ist nicht durch die Compiler-Toolchain erzwungen.

    – Rafe Kettler

    3. Juni 2011 um 18:35 Uhr

  • wahrscheinlich mit dem vollständigen Pfad zum Archiv. Die lib/.a-Konvektion wird mit verwendet -l Flagge, dh. -lXXX schaut nach libXXX.a oder libXXX.so.

    – eduffy

    3. Juni 2011 um 18:35 Uhr

Benutzeravatar von Carl Norum
Karl Norum

Sie können einer Bibliothek einen beliebigen Namen geben, aber wenn Sie möchten, gcc’s -l um das richtige zu finden, müssen Sie es so benennen, wie es der Link beschreibt. Zum Beispiel:

gcc -o myapp myapp.c -lm

Wird kompiliert myapp.cverknüpfen Sie das resultierende Objekt mit libm.aund geben Sie eine ausführbare Datei namens aus myapp. Heutzutage gibt es möglicherweise einen komplizierteren Suchpfad mit dynamischen Bibliotheksnamen usw., aber Sie sollten die Grundidee von diesem Beispiel verstehen.

Von dem gcc manpage:

-l Bibliothek

… umgibt Bibliothek mit lib Und .a und durchsucht mehrere Verzeichnisse.

  • Diese alten Unix-Typen Wirklich hasste es, die Tastatur zu benutzen! Dies ist ein Merkmal des Linkers im Unix-Stil, das ich nie wirklich als Rechtfertigung für die Fortsetzung in die Gegenwart gesehen habe. Natürlich können Sie immer den vollständigen Pfad und Namen der Bibliothek angeben.

    Benutzer2100815

    3. Juni 2011 um 18:39 Uhr

  • @ Max – ja, es ist optional. Dort kannst du ein Leerzeichen setzen. Aber wenn Sie dagegen verlinken libiberty.aes macht irgendwie Spaß zu schreiben -liberty

    – Karl Norum

    3. Juni 2011 um 18:40 Uhr

  • @Carl: Vor allem, wenn du es tust nicht Sie haben die Freiheit, die Bibliothek nach Ihren Wünschen zu benennen. 🙂

    – Xeo

    3. Juni 2011 um 18:45 Uhr

  • @nm Ja, ich habe tatsächlich einen davon verwendet columbia.edu/cu/computinghistory/la36.htmlaber ich denke immer noch, dass sie in diesem Fall etwas zu weit gegangen sind.

    Benutzer2100815

    3. Juni 2011 um 18:53 Uhr


  • @nm Du hattest 300 Baud? Du Glückspilz, sei froh, dass du nicht bei 110 hängen geblieben bist! Sie rufen diese Häfen nicht an tty für nichts.

    – Markieren Sie Lösegeld

    3. Juni 2011 um 20:04 Uhr

1443750cookie-check„lib“-Präfix für Bibliotheken

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy