Ero sivun ”Pkg-config” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Pyscowicz (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Päivitystä
Rivi 1: Rivi 1:
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
{{ Ohjelma | nimi=pkg-config  | kuva= |  kuvateksti= | lisenssi=[[GPL]]| käyttöliittymä=teksti | kotisivu=[http://pkgconfig.freedesktop.org/wiki/ pkgconfig.freedesktop.org] }}
{{Ohjelma
| nimi           = pkg-config   
| logo          =
| kuva           =
| kuvateksti    =
| tekijä        =  
| kehittäjä      =
| moottori      =
| ensijulkaisu  =
| vakaaversio    = 0.29.2
| vakaapvm      = 20. maaliskuuta 2017
| kehitysversio =  
| kehityspvm    =
| ohjelmoitu    =
| käyttöliittymä =
| tyyppi        =
| lisenssi       = [[GPLv2+]]
| kotisivu       = https://pkgconfig.freedesktop.org/wiki/ pkgconfig.freedesktop.org]
| lähdekoodi    =
}}
'''Pkg-config''' on kehitystyökalu, jota käytetään ohjelmiston kääntämiseen. Sen päätehtävä on helpottaa ohjelmointikirjastojen käyttöönottoa tarjoamalla automaattisesti oikeat kääntäjä- ja linkkeriasetukset (''--cflags'' ja ''--libs'') rakennusjärjestelmille (kuten [[Make]], [[Autotools]], [[Meson]] jne.).


'''pkg-config''' on työkalu kirjastojen vaatimien käännösasetusten löytämiseen, sitä tarvitaan myös tiettyjen optimointien toimintaan.
Alkuperäinen projekti ylläpidetään freedesktop.org-sivustolla, mutta monissa nykyaikaisissa Linux- ja BSD-jakeluissa (esim. Arch, Fedora, uudemmat Debianit) on siirrytty käyttämään yhteensopivaa, mutta tehokkaampaa [[pkgconf]]-toteutusta, joka toimii samalla komentorivillä


==Käyttö==
== Toimintaperiaate ==
Pkg-configin toiminta perustuu kirjastojen asentamiin metatietotiedostoihin, joilla on pääte ''.pc''.
* Nämä tiedostot sijaitsevat ennalta määritellyissä hakemistoissa (esim. ''/usr/lib/pkgconfig'').
* Jokainen ''.pc''-tiedosto sisältää kirjaston nimen, kuvauksen, version, sekä kriittiset tiedot.
* Cflags: Liput esiprosessorille ja kääntäjälle (esim. header-tiedostojen polut, kuten ''-I'').
* Libs: Liput linkkerille (esim. kirjastohakemistot ja linkattavat kirjastot, kuten ''-L'' ja ''-l'').
* Requires: Riippuvuudet muihin ''.pc''-tiedostoihin.
 
Komentorivillä pkg-config lukee halutun kirjaston ''.pc''-tiedoston, selvittää sen riippuvuudet ja tulostaa kaikkien tarvittavien kirjastojen kääntö- ja linkitysliput, jotta ohjelma voidaan kääntää ja linkittää onnistuneesti.
 
== Käyttö ==
Tyypillinen käyttötarkoitus on saada kääntäjävalitsimet GCC:lle jonkin kirjaston käyttämistä varten:


Tyypillinen käyttötarkoitus on saada kääntäjävalitsimet [[GCC]]:lle jonkin kirjaston käyttämistä varten:
  pkg-config <toiminnot ja valitsimet> <kirjasto>[<versio>]
  pkg-config <toiminnot ja valitsimet> <kirjasto>[<versio>]
esimerkiksi, jos haluan kääntää glibmm-kirjastoa käyttävän [[C plus plus|C++]]-lähdekooditiedoston esimerkki.cc
 
  g++ `pkg-config --libs --cflags glibmm-2.4` esimerkki.cc
Esimerkki: Käännettäessä [[C plus plus|C++]]-lähdekooditiedostoa ''esimerkki.cc'', joka käyttää glibmm-2.4-kirjastoa:
 
  g++ `pkg-config --cflags --libs glibmm-2.4` esimerkki.cc
 
{| class="wikitable"
|+
|-
! Toiminto !! Kuvaus
|-
| --cflags || Tulostaa kääntäjän liput (header-tiedostojen polut, -I).
|-
| --libs || Tulostaa linkkerin liput (linkitettävät kirjastot ja polut, -L, -l).
|-
| --modversion || Tulostaa pyydetyn kirjaston versionumeron.
|-
| --exists || Palauttaa nolla-arvon, jos kirjasto on löydetty.
|}
 
{{Huomautus|Haettavat hakemistot voidaan usein määritellä uudelleen käyttämällä ympäristömuuttujaa, tyypillisesti ''PKG_CONFIG_PATH''.}}


[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]

Versio 14. marraskuuta 2025 kello 22.23


pkg-config
Vakaa versio 0.29.2  / 20. maaliskuuta 2017
Lisenssi GPLv2+
Kotisivu https://pkgconfig.freedesktop.org/wiki/ pkgconfig.freedesktop.org]

Pkg-config on kehitystyökalu, jota käytetään ohjelmiston kääntämiseen. Sen päätehtävä on helpottaa ohjelmointikirjastojen käyttöönottoa tarjoamalla automaattisesti oikeat kääntäjä- ja linkkeriasetukset (--cflags ja --libs) rakennusjärjestelmille (kuten Make, Autotools, Meson jne.).

Alkuperäinen projekti ylläpidetään freedesktop.org-sivustolla, mutta monissa nykyaikaisissa Linux- ja BSD-jakeluissa (esim. Arch, Fedora, uudemmat Debianit) on siirrytty käyttämään yhteensopivaa, mutta tehokkaampaa pkgconf-toteutusta, joka toimii samalla komentorivillä

Toimintaperiaate

Pkg-configin toiminta perustuu kirjastojen asentamiin metatietotiedostoihin, joilla on pääte .pc.

  • Nämä tiedostot sijaitsevat ennalta määritellyissä hakemistoissa (esim. /usr/lib/pkgconfig).
  • Jokainen .pc-tiedosto sisältää kirjaston nimen, kuvauksen, version, sekä kriittiset tiedot.
  • Cflags: Liput esiprosessorille ja kääntäjälle (esim. header-tiedostojen polut, kuten -I).
  • Libs: Liput linkkerille (esim. kirjastohakemistot ja linkattavat kirjastot, kuten -L ja -l).
  • Requires: Riippuvuudet muihin .pc-tiedostoihin.

Komentorivillä pkg-config lukee halutun kirjaston .pc-tiedoston, selvittää sen riippuvuudet ja tulostaa kaikkien tarvittavien kirjastojen kääntö- ja linkitysliput, jotta ohjelma voidaan kääntää ja linkittää onnistuneesti.

Käyttö

Tyypillinen käyttötarkoitus on saada kääntäjävalitsimet GCC:lle jonkin kirjaston käyttämistä varten:

pkg-config <toiminnot ja valitsimet> <kirjasto>[<versio>]

Esimerkki: Käännettäessä C++-lähdekooditiedostoa esimerkki.cc, joka käyttää glibmm-2.4-kirjastoa:

g++ `pkg-config --cflags --libs glibmm-2.4` esimerkki.cc
Toiminto Kuvaus
--cflags Tulostaa kääntäjän liput (header-tiedostojen polut, -I).
--libs Tulostaa linkkerin liput (linkitettävät kirjastot ja polut, -L, -l).
--modversion Tulostaa pyydetyn kirjaston versionumeron.
--exists Palauttaa nolla-arvon, jos kirjasto on löydetty.
Huomautus: Haettavat hakemistot voidaan usein määritellä uudelleen käyttämällä ympäristömuuttujaa, tyypillisesti PKG_CONFIG_PATH.