Ero sivun ”Libtool” versioiden välillä
p luokitus |
Tarve ja periaate |
||
| Rivi 25: | Rivi 25: | ||
* Käytännöt kirjastojen versioimiseksi ja ABI-yhteensopivuuden merkitsemiseksi ovat alustakohtaisia. | * 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. | * 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. | |||
== Tarve ja periaate == | |||
Eri käyttöjärjestelmät käsittelevät jaettuja kirjastoja (shared libraries) hyvin eri tavoin: | |||
* Nimeämiskäytännöt: Kirjastotiedostojen päätteet ja etuliitteet vaihtelevat (.so Linuxissa, .dylib macOS:ssä, .dll Windowsissa). | |||
* Versiointi: Käytännöt kirjastojen versioimiseksi ja ABI-yhteensopivuuden merkitsemiseksi ovat alustakohtaisia. | |||
* Kääntäjävalitsimet: 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. | 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ä == | == Rooli GNU Build Systemissä == | ||
Libtool toimii tiiviissä yhteistyössä | Libtool toimii tiiviissä yhteistyössä [[Automake]]n kanssa. | ||
* Kehittäjä vain ilmoittaa Makefile.am-tiedostossa haluavansa luoda jaetun kirjaston. | * 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. | * [[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. | * 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. | ||
Nykyinen versio 15. marraskuuta 2025 kello 00.36
| 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.
Tarve ja periaate
[muokkaa]Eri käyttöjärjestelmät käsittelevät jaettuja kirjastoja (shared libraries) hyvin eri tavoin:
- Nimeämiskäytännöt: Kirjastotiedostojen päätteet ja etuliitteet vaihtelevat (.so Linuxissa, .dylib macOS:ssä, .dll Windowsissa).
- Versiointi: Käytännöt kirjastojen versioimiseksi ja ABI-yhteensopivuuden merkitsemiseksi ovat alustakohtaisia.
- Kääntäjävalitsimet: 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ä
[muokkaa]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.