Coisas em /usr/local
geralmente substituem o material em /usr
, então estou um pouco confuso sobre o porquê de você instalar bibliotecas lá para ter uma "boa distro personalizada", mas então não quer compilar com elas. Essas são as bibliotecas que o sistema usará para usar.
De qualquer forma, man pkg-config
reivindica o caminho de pesquisa de base:
is libdir/pkgconfig:datadir/pkgconfig where libdir is the libdir for pkg-config and datadir is the datadir for pkg-config when it was installed.
Isto implica que eles são compilados. Eu percebo que é diferente no Ubuntu do que no fedora - o primeiro é longo e inclusivo, enquanto o último é curto e exclusivo; no fedora eu tenho que definir um $PKG_CONFIG_PATH
para incluir /usr/local
.
Como os caminhos em $PKG_CONFIG_PATH
são verificados primeiro , você pode definir:
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
O fato de estarem no final dos caminhos embutidos não importará; se o cheque chegar lá sem encontrar nada, não há nada a ser encontrado.
Para demonstrar como isso funciona, crie um diretório temporário /opt/bs/pkg
e copie um arquivo .pc
de um dos diretórios no caminho padrão para ele - por exemplo, alsa.pc
. Primeiro cheque;
> pkg-config --libs alsa
-lasound
Agora, vá para /opt/bs/pkg/alsa.pc
e altere -lasound
(está no campo Libs:
) para -foobar
. Defina $PKG_CONFIG_PATH
e tente novamente:
> PKG_CONFIG_PATH=/opt/bs/pkg pkg-config --libs alsa
-foobar
Eureka, $PKG_CONFIG_PATH
anulou os caminhos incorporados ... você pode excluir /opt/bs/pkg
, é claro.