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ä Automaken kanssa.
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.


Noudettu kohteesta ”https://www.linux.fi/wiki/Libtool