Programowanie w systemie UNIX/pkg-config
Wygląd
path
[edytuj]Sprawdzamy katalog programu:
which pkg-config
Wynik:
/usr/bin/pkg-config
Gdzie program szuka plików pc:
pkg-config --variable pc_path pkg-config
przykładowy wynik:
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
W celu dodania nowej ścieżki:
- tworzymy nową zmienną PKG_CONFIG_PATH
- dodajemy jej wartość podstawową
- dodajemy do niej ścieżkę, w której jest pożądany plik pc [1]
PKG_CONFIG_PATH=/usr/bin/pkg-config export PKG_CONFIG_PATH="$HOME/mandelbrot/mandelbrot-numerics/c/lib/pkgconfig/:${PKG_CONFIG_PATH}"
pliki pc
[edytuj]składnia
[edytuj]Przykład
prefix=/usr/local exec_prefix=${prefix} includedir=${prefix}/include libdir=${exec_prefix}/lib Name: foo Description: The foo library Version: 1.0.0 Cflags: -I${includedir}/foo Libs: -L${libdir} -lfoo
pola
[edytuj]Pola[2]
- Cflags = flagi preprocesora i kompilacji wymagane do kompilowania pakietów w wierszu poleceń, w tym flagi wszystkich ich zależności.
- Libs : flagi linkera
położenie
[edytuj]<pkg-name>.pc
Szukamy plików pc samodzielnie:
sudo updatedb locate *.pc
lub:
apt-file search sndfile.pc
lub tylko dla biblioteki gtk:
locate gtk | grep '\.pc'
biblioteki
[edytuj]Sprawdzamy jakie biblioteki widzi pkg-config:[3]
pkg-config --list-all
Jeśli szukamy konkretnej :
pkg-config --list-all|grep snd
Przykładowy wynik
sndfile sndfile - A library for reading and writing audio files