Programowanie w systemie UNIX/pkg-config


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

Źródła edytuj

  1. askubuntu question: pkg-config-path-environment-variable
  2. guide
  3. Adding a library