возможно неопределенный макрос: AC_MSG_ERROR - PullRequest
106 голосов
/ 11 января 2012

У меня есть следующее в 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

Это было в нашем проекте в течение длительного времени, но в некоторых случаях я получаю эту ошибку:

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.

Строки, которые были недавно добавлены выше:

AC_CONFIG_MACRO_DIR([m4])
LT_INIT

Может кто-нибудь объяснить, что вызывает эту ошибку и как отследить проблему?

РЕДАКТИРОВАТЬ: Добавление сведений о различиях.

Коробка, которая работает:

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

Ящик, который не работает:

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

НОВОЕ РЕДАКТИРОВАНИЕ: только 32-битные машины испытывают эту трудность.

ОБНОВЛЕНО Я могу воспроизвести проблему на компьютере CentOS с autoconf 2.67, automake 1.11.1, libtool 2.2.6b и m4 1.4.14. Это просто ошибка 32-битных машин?

Ответы [ 17 ]

2 голосов
/ 19 февраля 2016

В Mac OS X el капитан с brew, попробуйте:
brew install pkgconfig

Это сработало для меня.

1 голос
/ 05 марта 2018

Есть две возможные причины этой проблемы:

  1. не установил aclocal.
    решение : установить libtool

    • Для Ubuntu: sudo apt-get install libtool
    • Для сентосов: sudo yum install libtool
  2. путь к LIBTOOL.m4 является ошибкой.
    решение:

    1. используйте aclocal --print-ac-dir для проверки текущего пути к aclocal. (Обычно это "/ usr / share / aclocal" или "/ usr / share / aclocal")
    2. Затем проверьте, есть ли файлы * .m4.
    3. Если нет, cp сопоставить файлы * .m4 этому пути (возможно cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/ или cp /usr/local/share/aclocal/*.m4 /usr/share/aclocal/)

Надеюсь, это поможет

1 голос
/ 29 августа 2016

Я решил это yum install libtool

1 голос
/ 12 июля 2016

Моя проблема решена после установки pkg-config на Mac (brew install pkg-config)

0 голосов
/ 28 декабря 2014

У меня была такая же проблема с портом Macports "openocd" (локально измененным Portfile для использования репозитория git) на только что установленной машине.

Постоянное исправление легко, определите зависимость от pkgconfig вПорт-файл: зависит от_либа-порт добавления: pkgconfig

0 голосов
/ 22 января 2015

Это случилось со мной, когда я забыл a, в аргументах для локально определенного макроса. Потратил часы, пытаясь разобраться (едва знаком с автоинструментами) ...

AC_CHECK_MACRO([Foo]
    AC_LOCAL_DO([......

должно было быть

AC_CHECK_MACRO([Foo],      # <-- Notice comma, doh!
    AC_LOCAL_DO([......

Похоже, это должно было дать мне ошибку или что-то подобное, но я полагаю, что, будучи макропроцессором, он может делать только то, что ему было сказано.

0 голосов
/ 26 мая 2016

У меня была такая же проблема в Ubuntu (error: possibly undefined macro: AC_MSG_ERROR), но ответы выше не сработали для меня. Я нашел решение здесь

Это сделало трюк:

$ LANG=C LC_CTYPE=C ./autogen.sh
...