Tenho o seguinte em configure.ac:
AC_CHECK_PROGS(MAKE,$MAKE make gmake,error)
if test "x$MAKE" = "xerror" ;then
AC_MSG_ERROR([cannot find a make command])
fi
Isso está em nosso projeto há muito tempo, mas em algumas configurações, recebo este erro:
configure.ac:45: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
As linhas que foram adicionadas recentemente acima disso:
AC_CONFIG_MACRO_DIR([m4])
LT_INIT
Alguém pode explicar o que causa esse erro e como rastrear o problema?
EDIT: Adicionando detalhes sobre as diferenças.
Caixa que funciona:
uname -a Linux host1 2.6.38-13-generic #53-Ubuntu SMP Mon Nov 28 19:33:45 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
automake: 1.11.1
autoconf: 2.67
m4: 1.4.14
libtoolize: 2.2.6b
Caixa que não funciona:
Linux host2 2.6.32-35-generic-pae #78-Ubuntu SMP Tue Oct 11 17:01:12 UTC 2011 i686 GNU/Linux
automake: 1.11.1
autoconf: 2.65
m4: 1.4.13
libtoolize: 2.2.6b
NOVA EDIÇÃO: apenas máquinas de 32 bits têm essa dificuldade.
Atualizado eu sou capaz de reproduzir o problema em uma máquina CentOS com autoconf 2.67
, automake 1.11.1
, libtool 2.2.6b
, e m4 1.4.14
. Isso é apenas um bug em máquinas de 32 bits?
Respostas:
Eu tive esse mesmo problema e descobri que o
pkg-config
pacote estava faltando.Depois de instalar o pacote, tudo gerou corretamente.
fonte
"-I /toolchain_local/pkg-config-0.23/share/aclocal"
àautoreconf
linha de comando. Levei algum tempo para perceber que o pkg-config não instala apenas binários.rpm -ql pkgconfig
ajudou.libtool
.AC_MSG_ERROR
estava tentando dizer "você precisa instalar o pkg-config", mas por algum motivo não foi possível imprimir esta mensagem (dando o erro sobreAC_MSG_ERROR
). Ao instalarpkg-config
não havia mais necessidade de imprimir uma mensagem de erro, então aAC_MSG_ERROR
linha foi pulada e tudo funcionou. Tudo bem se você estiver instalando o pacote de outra pessoa, mas se for seu próprio código, você ainda não corrigiu o problema :-)autoconf-archive
pacote resolveu o problema.Recomenda-se usar em
autoreconf -fi
vez de chamar manualmenteaclocal;autoconf;automake; #and whatever else
para preencher corretamente aclocal.m4 e assim por diante.Adicionar
ACLOCAL_AMFLAGS = -I m4
(ao Makefile.am de nível superior) eAC_CONFIG_MACRO_DIR([m4])
atualmente ainda é opcional se você não usar nenhum arquivo m4 próprio, mas é claro, fazê-lo irá silenciar o processo :)fonte
autoreconf -fi
feito compilar PCRE.ACLOCAL_AMFLAGS
emMakefile.am
- muito obrigado!Eu tive esse problema com o meu
configure.ac
, mas neste caso (e para o benefício de qualquer pessoa aqui do Google) foi porque eu havia citado acidentalmente o,AC_MSG_ERROR
então ele estava sendo tratado como uma string:Depois de remover os colchetes ao redor da
AC_MSG_ERROR
macro, funcionou:Aqueles comentários dizendo que você deve instalar
pkg-config
ou algum pacote estão perdendo o ponto. OAC_MSG_ERROR
deve funcionar e dar a você uma mensagem útil como "Você precisa instalar o pacote XYZ", mas por causa de algum problema, oAC_MSG_ERROR
não funciona. Instalar o pacote XYZ certamente fará com que o erro desapareça, mas somente porque uma vez que o pacote está lá, não há mais necessidade de imprimir uma mensagem de erro!Portanto, a instalação de
pkg-config
um pacote específico simplesmente contorna o problema, mas na verdade não o corrige.fonte
eu também tive um problema semelhante .. minha solução é
(eu já tinha o libcurl instalado) funcionou para mim pelo menos ..
fonte
Eu tive este mesmo problema no CentOS 7
Em alguns casos, o problema desapareceu após a instalação de
libcurl-devel
(libcurl
já estava instalado nesta máquina)fonte
Tive o mesmo problema no RHEL7.5 com otto-de / libvmod-uuid
Foi corrigido com a instalação de pacotes "autoconf-archive"
fonte
Você está configurando um
m4
diretório local ' '? por exemplo,> aclocal -I m4 --install
Alguns pacotes vêm com um script
autogen.sh
ouinitgen.sh
shell para executar glibtoolize, autoheader, autoconf, automake. Aqui está umautogen.sh
script que uso:EDITAR
Você pode precisar adicionar
ACLOCAL_AMFLAGS = -I m4
ao nível superiorMakefile.am
.fonte
ACLOCAL_AMFLAGS
variável?Para o Debian. Os pacotes necessários são: m4 automake pkg-config libtool
fonte
O erro é gerado pelo autom4te. Se as coisas estiverem configuradas corretamente, a parte do código que gera esse erro nunca deve ver 'AC_MSG_ERROR', porque deveria ter sido expandido em m4 antes desse ponto. Você diz que o erro só acontece "em algumas configurações". Eu sugeriria que nessas configurações, a instalação do autoconf seja fubar. Possivelmente, você tem uma versão incompatível do m4 instalada.
fonte
Usando MacOS X
foi a solução!
fonte
No Mac OS X el capitain com brew, tente:
brew install pkgconfig
Isso funcionou para mim.
fonte
Existem duas razões possíveis para esse problema:
não instalou aclocal.
solução : instalar libtool
sudo apt-get install libtool
sudo yum install libtool
o caminho para LIBTOOL.m4 é um erro.
solução:
aclocal --print-ac-dir
para verificar o caminho atual para aclocal. (Normalmente deve ser "/ usr / share / aclocal" ou "/ usr / share / aclocal")cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
oucp /usr/local/share/aclocal/*.m4 /usr/share/aclocal/
)Espero que ajude
fonte
Eu tive o mesmo problema no Ubuntu (
error: possibly undefined macro: AC_MSG_ERROR
), mas as respostas acima não funcionaram para mim. Eu encontrei a solução aquiIsso funcionou:
fonte
Meu problema foi resolvido depois de instalar o pkg-config no Mac (brew install pkg-config)
fonte
Eu resolvi isso por
yum install libtool
fonte
Isso aconteceu comigo quando esqueci um, nos argumentos para uma macro definida localmente. Passei horas tentando descobrir (mal familiarizado com ferramentas automáticas) ...
deveria ter ficado
Parece que deveria ter me dado um erro ou algo parecido, mas suponho que sendo um processador de macro, ele só pode fazer o que é dito.
fonte
Acabei de perder algumas horas com este. Minha conclusão:
fonte
Tive problemas semelhantes ao tentar construir amtk e utthpmock com jhbuild.
Eu precisava instalar a versão mais recente do autoconf-archive. As instruções estão em https://github.com/autoconf-archive/autoconf-archive/blob/master/README-maint . Eu fiz um adicional
sudo make install
no final.A última etapa foi atualizar meu
ACLOCAL_PATH
:Depois de a
source ~/.bashrc
, todas as macros foram finalmente encontradas e as compilações foram bem-sucedidas.fonte
Eu tive o mesmo problema com a porta Macports "openocd" (modifiquei localmente o Portfile para usar o repositório git) em uma máquina recém-instalada.
A correção permanente é fácil, defina uma dependência para pkgconfig no Portfile: depends_lib-append port: pkgconfig
fonte