Ero sivun ”Libtool” versioiden välillä
Siirry navigaatioon
Siirry hakuun
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. | ||