Kaj je statična knjižnica?

Statična knjižnica je računalniški arhiv, ki vsebuje skupino povezanih datotek za enostavno povezovanje v programe. Vsebina te knjižnice so običajno datoteke strojne kode, ki jih ljudje ne berejo. Te datoteke strojne kode so običajno ustvarjene s prevajanjem kode ali podobnim postopkom. Večina operacijskih sistemov ima standardne razširitve za statične knjižnice, zato jih je enostavno prepoznati ne glede na velikost ali vsebino.

Dve različni vrsti računalniških knjižnic sta statična in dinamična. Statična knjižnica je bolj prilagodljiva kot dinamična knjižnica, ker njena natančna pot ni pomembna za izvedljivo datoteko, ki jo uporablja. Statične knjižnice so povezane v izvedljivo datoteko in jih je mogoče po potrebi izbrisati, ker je bila njihova vsebina vključena v končni program. Dinamične knjižnice ni mogoče izbrisati, ker se njena vsebina naloži med izvajanjem izvedljive datoteke, zato so pomembne njene lokacije glede na izvedljivo datoteko in v operacijskem sistemu. Statično povezovanje omogoča premikanje ali ponovno uporabo knjižnice brez skrbi za absolutne lokacijske poti.

V nasprotju z dinamično knjižnico statična knjižnica običajno ni izvedljiva sama. V C++ statične knjižnice pogosto delujejo kot velike objektne datoteke in jih je mogoče povezati v izvedljive datoteke na enak način, kot je mogoče objektne datoteke in nato izbrisati brez škode za program. Čeprav se je pogosto mogoče odreči statični knjižnici, so pogosto uporabne z vidika organizacije. Tako za uporabnike kot za razvijalce je običajno lažje imeti eno datoteko, ki vsebuje sorodno gradivo, kot pa veliko majhnih datotek. Mnogi razvijalci gradijo statične knjižnice posebej za to organizacijsko korist.

Gradnja statične knjižnice je veliko enostavnejša kot gradnja dinamične knjižnice. Vsebina statičnih knjižnic ni med seboj povezana, ker ni pričakovati, da se bodo izvajale same, zato je za njihovo ustvarjanje običajno dovolj preprost arhivator. Ustvarjanje statične knjižnice, ki se sama po sebi ne povezuje pravilno, ni nevarno, dokler je knjižnica povezana z drugimi zunanjimi datotekami, ki so morda potrebne. Knjižnica je lahko odvisna od zunanje skupine objektnih datotek ali pa je ena knjižnica odvisna od druge. Uporaba in organizacija statičnih knjižnic je pogosto osebna izbira programerja in ne zahteva, čeprav so zaradi njihove lastne mobilnosti pogosto zaželena izbira.