Традиционно и типично, когато скрипт ./configure
проверява за библиотека, към която пакетът, който конфигурирате, трябва да се свърже, той проверява поне за наличието и използваемостта на самата библиотека, а също и за заглавния файл(ове) на библиотеката, без които компилаторът не може да използва API на библиотеката. (Казвам обикновено, защото това, което всяка дадена ./configure
проверка всъщност прави, се програмира от поддържащия пакет. Няма нищо общо с вашия компилатор).
Проверката за наличие и използваемост на libfoobar
обикновено не означава, че проверката на ./configure
търси във файловата система libfoobar.dll
, libfoobar.a
или каквото и да е друго. Това означава, че проверката на ./configure
просто се опитва да компилира и свърже примерна програма срещу libfoobar
, използвайки командите, които са подходящи за това, когато libfoobar
е инсталиран.
Често (и все по-често) ./configure
проверката за библиотека libfoobar
извиква pkg-config
< /a> инструмент за опит за извличане на правилните флагове на компилатора и линкера за използване с libfoobar
. За да успее този опит, pkg-config
файл с метаданни, свързан с библиотечния пакет, foobar.pc
, трябва да бъде намерен на стандартно място във файловата система, напр. /usr/lib/pkgconfig
, /usr/share/pkgconfig
За да може библиотеката, плюс нейните заглавки, плюс нейните pkg-config
метаданни (ако има такива) да бъдат достъпни за ./configure
, е необходимо да инсталирате пакета за разработка на libfoobar
, за разлика от основния пакет. Пакетът за разработка обикновено има същото име като основния пакет с добавяне на -dev
или -devel
компонент, напр. libfoobar-dev
Ако проверката ./configure
е неуспешна с грешка във формата:
No package 'foobar' found.
това означава, че проверката се е опитала да извлече pkg-config
метаданни за foobar
и не е намерена нито една. Това обикновено се дължи на факта, че пакетът за разработка libfoobar-dev
не е инсталиран, дори ако libfoobar
е инсталиран.
person
Mike Kinghan
schedule
16.03.2016