Não está claro onde o pkg-config está encontrando informações ou como os arquivos .pc são nomeados

3

Eu segui um tutorial sobre o GTK que usou este comando para gerar os sinalizadores de compilação:

$ pkg-config --cflags --libs gtk+-3.0

Isso gera sinalizadores coerentes. Da pesquisa, descobri que pkg-config procura por .pc arquivos em /usr/lib/pkginfo , usr/share/pkgconfig , nos /local equivalentes e na pasta indicada pela variável PKG_CONFIG_PATH .

Nenhuma das pastas contém o arquivo GTK e a variável de ambiente não está definida. Onde está pkg-config recebendo as bandeiras?

    
por rur2641 07.07.2018 / 14:48

2 respostas

4

Ele está sendo encontrado em /usr/lib/x86_64-linux-gnu/pkgconfig/gtk+-3.0.pc (supondo que você esteja em amd64 ). No Debian, pkg-config também procura o diretório multi-arch pelo alvo, ou seja, /usr/lib/$(dpkg-architecture -q DEB_TARGET_MULTIARCH)/pkgconfig .

    
por 07.07.2018 / 14:57
3

Existem alguns truques interessantes fornecidos na página man para obter essas informações do pkg-config em si.

PKG-CONFIG DERIVED VARIABLES

       pc_path
              The default search path used by pkg-config  when  searching  for
              .pc files. This can be used in a query for the pkg-config module
              itself itself:
                $ pkg-config --variable pc_path pkg-config

       pcfiledir
              The installed location of the .pc file.  This  can  be  used  to
              query  the location of the .pc file for a particular module, but
              it can also be used to make .pc files relocatable.

Por exemplo, para ver o caminho de pesquisa real do seu sistema / arquitetura:

$ pkg-config --variable pc_path pkg-config | tr ':' '\n'
/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

e para obter a localização onde o arquivo .pc de um determinado pacote é encontrado

$ pkg-config --variable pcfiledir gtk+-3.0
/usr/lib/x86_64-linux-gnu/pkgconfig
    
por 07.07.2018 / 15:10