Tengo lo siguiente en 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
Esto ha estado en nuestro proyecto durante mucho tiempo, pero en algunas configuraciones, aparece este error:
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.
Las líneas que se agregaron recientemente encima de esto:
AC_CONFIG_MACRO_DIR([m4])
LT_INIT
¿Alguien puede explicar qué causa este error y cómo localizar el problema?
EDITAR: agregando detalles sobre las diferencias.
Caja 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
Caja que no 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
NUEVA EDICIÓN: solo las máquinas de 32 bits experimentan esta dificultad.
ACTUALIZADO soy capaz de reproducir el problema en una máquina con CentOS autoconf 2.67
, automake 1.11.1
, libtool 2.2.6b
, y m4 1.4.14
. ¿Es esto solo un error con máquinas de 32 bits?
Respuestas:
Tuve el mismo problema y descubrí que
pkg-config
faltaba el paquete.Después de instalar el paquete, todo se generó correctamente.
fuente
"-I /toolchain_local/pkg-config-0.23/share/aclocal"
a laautoreconf
línea de comandos. Me tomó un tiempo darme cuenta de que pkg-config no instala solo binarios.rpm -ql pkgconfig
ayudado.libtool
.AC_MSG_ERROR
estaba intentando decir "necesita instalar pkg-config" pero por alguna razón no pudo imprimir este mensaje (dando el error acerca deAC_MSG_ERROR
). Al instalar,pkg-config
ya no era necesario imprimir un mensaje de error, por loAC_MSG_ERROR
que se omitió la línea y todo funciona. Está bien si está instalando el paquete de otra persona, pero si es su propio código, aún no ha solucionado el problema :-)autoconf-archive
paquete solucionó el problema.Se recomienda usarlo en
autoreconf -fi
lugar de llamar manualmenteaclocal;autoconf;automake; #and whatever else
para completar correctamente aclocal.m4 y así sucesivamente.Agregar
ACLOCAL_AMFLAGS = -I m4
(al Makefile.am de nivel superior) yAC_CONFIG_MACRO_DIR([m4])
actualmente sigue siendo opcional si no usa ningún archivo m4 propio, pero, por supuesto, hacerlo silenciará el proceso :)fuente
autoreconf -fi
compilamos PCRE.ACLOCAL_AMFLAGS
enMakefile.am
- gracias!Tuve este problema con el mío
configure.ac
, pero en este caso (y para el beneficio de cualquier persona de Google aquí) fue porque había citado accidentalmente,AC_MSG_ERROR
por lo que estaba siendo tratado como una cadena:Una vez que eliminé los corchetes alrededor de la
AC_MSG_ERROR
macro, funcionó:Esos comentarios que dicen que debería instalar
pkg-config
o algún paquete no son el punto. SeAC_MSG_ERROR
supone que funciona y te da un mensaje útil como "Necesitas instalar el paquete XYZ", pero debido a algún problema,AC_MSG_ERROR
no funciona. La instalación del paquete XYZ ciertamente hará que el error desaparezca, pero solo porque una vez que el paquete está allí, ¡ya no es necesario imprimir un mensaje de error!Entonces, la instalación de
pkg-config
un paquete en particular simplemente evita el problema, en realidad no lo soluciona.fuente
También tuve un problema similar ... mi solución es
(ya tenía instalado libcurl) funcionó para mí al menos ..
fuente
He experimentado este mismo problema en CentOS 7
En tal caso, el problema surgió después de la instalación de
libcurl-devel
(libcurl
ya estaba instalado en esta máquina)fuente
Tuve el mismo problema en RHEL7.5 con otto-de / libvmod-uuid
Se solucionó instalando paquetes "autoconf-archive"
fuente
¿Está configurando un
m4
directorio ' ' local ? p.ej,> aclocal -I m4 --install
Algunos paquetes vienen con un script de shell
autogen.sh
oinitgen.sh
para ejecutar glibtoolize, autoheader, autoconf, automake. Aquí hay unautogen.sh
guión que uso:EDITAR
Es posible que deba agregar
ACLOCAL_AMFLAGS = -I m4
al nivel superiorMakefile.am
.fuente
ACLOCAL_AMFLAGS
variable?Para Debian. Los paquetes requeridos son: m4 automake pkg-config libtool
fuente
El error lo genera autom4te. Si las cosas están configuradas correctamente, la parte del código que genera ese error nunca debería ver 'AC_MSG_ERROR', porque debería haber sido expandido por m4 antes de ese punto. Dice que el error solo ocurre "en algunas configuraciones". Sugeriría que en esas configuraciones, su instalación de autoconf sea fubar. Posiblemente tengas instalada una versión incompatible de m4.
fuente
Usando MacOS X
fue la solución!
fuente
En Mac OS X el captain con brew, intente:
brew install pkgconfig
Esto funcionó para mí.
fuente
Hay dos posibles razones para ese problema:
no instaló un local.
solución: instalar libtool
sudo apt-get install libtool
sudo yum install libtool
la ruta a LIBTOOL.m4 es un error.
solución:
aclocal --print-ac-dir
para verificar la ruta actual a un local. (Por lo general, debe ser "/ usr / share / aclocal" o "/ usr / share / aclocal")cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
ocp /usr/local/share/aclocal/*.m4 /usr/share/aclocal/
)Espero eso ayude
fuente
Tuve el mismo problema en Ubuntu (
error: possibly undefined macro: AC_MSG_ERROR
) pero las respuestas anteriores no me funcionaron. Encontré la solución aquíEso hizo el truco:
fuente
Mi problema se resuelve después de instalar pkg-config en Mac (brew install pkg-config)
fuente
Resolví esto por
yum install libtool
fuente
Esto me sucedió cuando olvidé un, en los argumentos de una macro definida localmente. Pasé horas tratando de resolverlo (apenas familiarizado con las herramientas automáticas) ...
debería haber sido
Parece que debería haberme dado un error o algo así, pero supongo que al ser un macroprocesador solo puede hacer lo que se le dice.
fuente
Perdí unas pocas horas en este. Mi conclusión:
fuente
Tuve problemas similares al intentar compilar amtk y utthpmock con jhbuild.
Necesitaba instalar la versión más reciente de autoconf-archive. Las instrucciones están en https://github.com/autoconf-archive/autoconf-archive/blob/master/README-maint . Hice un adicional
sudo make install
al final.El último paso fue actualizar mi
ACLOCAL_PATH
:Después de a
source ~/.bashrc
, finalmente se encontraron todas las macros y las compilaciones tuvieron éxito.fuente
Tuve el mismo problema con el puerto de Macports "openocd" (modifiqué localmente el Portfile para usar el repositorio de git) en una máquina recién instalada.
La solución permanente es fácil, defina una dependencia para pkgconfig en el archivo Portfile: depends_lib-append port: pkgconfig
fuente