Ero sivun ”Libtool” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Libtool |
Tarve ja periaate |
||
| (Yhtä välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
| 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. | ||
'''.la-tiedosto'''<br> | '''.la-tiedosto'''<br> | ||
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. | 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. | ||
[[Luokka: Kehitystyökalut]] | |||