Libtool

Linux.fista
Versio hetkellä 15. marraskuuta 2025 kello 00.32 – tehnyt Lahtis (keskustelu | muokkaukset) (luokitus)
Siirry navigaatioon Siirry hakuun
GNU Libtool (libtool)
Kehittäjä(t) GNU Project
Moottori Järjestelmän linkkeri (ld)
Ensijulkaisu 1990-luvun alku
Vakaa versio 2.4.7  / 2023
Ohjelmoitu Shell-skripti
Käyttöliittymä Komentorivi (CLI)
Tyyppi Kirjastojen siirrettävyystyökalu
Lisenssi GNU LGPL
Kotisivu gnu.org/software/libtool/

Libtool (virallisesti GNU Libtool) on ohjelmointityökalu, jonka ensisijainen tehtävä on tehdä jaettujen kirjastojen (eli dynaamisten kirjastojen) luomisesta ja käytöstä siirrettävää (portable) eri käyttöjärjestelmien ja alustojen välillä. Se on olennainen osa GNU Build Systemiä (Autotools).

Eri käyttöjärjestelmät käsittelevät jaettuja kirjastoja (shared libraries) hyvin eri tavoin:

  • Kirjastotiedostojen päätteet ja etuliitteet vaihtelevat (.so Linuxissa, .dylib macOS:ssä, .dll Windowsissa).
  • Käytännöt kirjastojen versioimiseksi ja ABI-yhteensopivuuden merkitsemiseksi ovat alustakohtaisia.
  • Tarvittavat kääntäjän ja linkkerin liput (esim. liput position-independent codea varten) vaihtelevat järjestelmittäin.

Libtool piilottaa tämän alustariippuvaisen monimutkaisuuden kehittäjältä luomalla geneerisiä skriptejä, jotka kutsuvat taustalla järjestelmäkohtaisia komentoja oikeilla valitsimilla.

Rooli GNU Build Systemissä

Libtool toimii tiiviissä yhteistyössä Automaken kanssa.

  • Kehittäjä vain ilmoittaa Makefile.am-tiedostossa haluavansa luoda jaetun kirjaston.
  • Autotools (Libtool mukaan lukien) huolehtii siitä, että kun loppukäyttäjä ajaa ./configure- ja make-komennot, järjestelmä luo jaetut kirjastot juuri sille alustalle sopivalla tavalla.
  • Kehittäjä voi kirjoittaa yhdenmukaisen rakennusmäärityksen, joka toimii samalla tavalla riippumatta siitä, käännetäänkö se esimerkiksi vanhalla HP-UX-järjestelmällä vai modernilla Linux-jakelulla.

.la-tiedosto
Libtool luo kirjaston ohella tiedostoja, joiden pääte on .la (Lyhenne sanoista Libtool Archive). Nämä tekstitiedostot sisältävät metatietoja luodusta kirjastosta, kuten sen riippuvuudet ja sijainnin, auttaen muita Libtoolia käyttäviä projekteja löytämään ja linkittämään sen oikein.