Como corrigir o erro "PKG_PROG_PKG_CONFIG: comando não encontrado"?

12

Eu tenho o Ubuntu 13.10 sistema de 32 bits. Recentemente, quando tento compilar executando ./autogen.she ./configurerecebo

 PKG_PROG_PKG_CONFIG: command not found

erro. Eu libtoolinstalei. Eu tenho três arquivos aclocal em usr/share/como alocal, aclocal-1.13eaclocal-1.4

Como posso corrigir esse erro local?

EDITAR:

Algum tempo atrás, compilei a versão mais recente do automake a partir da fonte e a instalei porque um código-fonte precisava de uma versão recente do automake para executar o processo de configuração. Desde então, sempre que executo comandos padrão ./autogene /configureno diretório de origem para gerar makefile, recebo

  PKG_PROG_PKG_CONFIG: command not found

erro

  find /usr -name "pkg.m4"

me dá

  /usr/share/aclocal/pkg.m4

e

  aclocal --print-ac-dir

me dá

  /usr/local/share/aclocal
Kenn
fonte
o pkg-configpacote está instalado? o arquivo /usr/share/aclocal/pkg.m4existe no seu sistema?
steeldriver
O que você está tentando compilar?
Jobin
@steeldriver find /usr -name "pkg.m4"me dá/usr/share/aclocal/pkg.m4
kenn
@Jobin Estou tentando compilar este: codeload.github.com/blazt/submarine/zip/master
Kenn
O que aclocal --print-ac-dirdiz?
steeldriver

Respostas:

17

A PKG_PROG_PKG_CONFIGvariável refere-se a uma macro pkg.m4que é fornecida como parte do pacote pkg-config, portanto, a primeira coisa a verificar é se o pkg-config está instalado e se o arquivo da macro está no local padrão (e é legível, é claro)

dpkg -l pkg-config

ls -l /usr/share/aclocal/pkg.m4

Se isso der certo, então a pergunta se torna: por que aclocalnão o encontra? Você pode verificar onde aclocalestá configurado para procurar arquivos m4 de terceiros usando a --print-ac-diropção

aclocal --print-ac-dir

Se não for o mesmo que o local acima, sugere que há uma versão não padrão do automake em seu sistema - se você não conseguir resolver isso, uma possível solução alternativa é definir ou exportar a ACLOCAL_PATHvariável de ambiente antes de executar o autogen. script sh, por exemplo

ACLOCAL_PATH=/usr/share/aclocal ./autogen.sh

ou

export ACLOCAL_PATH=/usr/share/aclocal
./autogen.sh
./configure

Veja a seção do caminho de pesquisa de macro do manual GNU automake.

chave de aço
fonte
Ou, PKG_PROG_PKG_CONFIGpode vir de um erro de digitação em uma atribuição de variável, por exemplo, em PKG_PROG_PKG_CONFIG<space>=...vez de PKG_PROG_PKG_CONFIG=.... grep "PKG_PROG_PKG_CONFIG "nos seus arquivos.
Waltinator