У меня в 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-битных машин?
Ответы:
У меня была такая же проблема, и я обнаружил, что этот
pkg-config
пакет отсутствует.После установки пакета все сгенерировалось правильно.
источник
"-I /toolchain_local/pkg-config-0.23/share/aclocal"
вautoreconf
командную строку. Мне потребовалось некоторое время, чтобы понять, что pkg-config не устанавливает только двоичные файлы.rpm -ql pkgconfig
помог.libtool
.AC_MSG_ERROR
он пытался сказать «вам нужно установить pkg-config», но по какой-то причине он не смог распечатать это сообщение (с сообщением об ошибкеAC_MSG_ERROR
). После установкиpkg-config
больше не нужно было печатать сообщение об ошибке, поэтомуAC_MSG_ERROR
строка была пропущена, и все заработало. Хорошо, если вы устанавливаете чужой пакет, но если это ваш собственный код, вы все еще неautoconf-archive
пакета устранила проблему.Рекомендуется использовать
autoreconf -fi
вместо ручного вызоваaclocal;autoconf;automake; #and whatever else
для правильного заполнения aclocal.m4 и так далее.Добавление
ACLOCAL_AMFLAGS = -I m4
(в Makefile.am верхнего уровня) иAC_CONFIG_MACRO_DIR([m4])
в настоящее время по-прежнему необязательно, если вы не используете какие-либо собственные файлы m4, но, конечно же, это отключит процесс :)источник
autoreconf -fi
сделал компиляцию PCRE.ACLOCAL_AMFLAGS
вMakefile.am
- спасибо!У меня была эта проблема с моей собственной
configure.ac
, но в этом случае (и для пользы всех здесь из Google) это было потому, что я случайно процитировал,AC_MSG_ERROR
поэтому он обрабатывался как строка:Как только я удалил квадратные скобки вокруг
AC_MSG_ERROR
макроса, он заработал:Те комментарии, в которых говорится, что вы должны установить
pkg-config
или какой-то пакет, не имеют значения.AC_MSG_ERROR
Должен работать и дать вам полезные сообщения , как «Вам необходимо установить пакет XYZ», но из - за какой - то проблемы,AC_MSG_ERROR
не работает. Установка пакета XYZ, безусловно, устранит ошибку, но только потому, что после того, как пакет будет там, отпадет необходимость печатать сообщение об ошибке!Таким образом, установка
pkg-config
определенного пакета просто позволяет обойти проблему, но на самом деле ее не исправить.источник
у меня тоже была похожая проблема .. мое решение -
(у меня уже была установлена libcurl), по крайней мере, у меня сработало ..
источник
Я испытал ту же проблему в CentOS 7
В некоторых случаях проблема исчезла после установки
libcurl-devel
(libcurl
уже была установлена на этом компьютере)источник
У меня была такая же проблема на RHEL7.5 с otto-de / libvmod-uuid
Исправлено установкой пакетов "autoconf-archive"
источник
Вы настраиваете локальный
m4
каталог? например,> aclocal -I m4 --install
Некоторые пакеты содержат сценарий оболочки
autogen.sh
илиinitgen.sh
для запуска glibtoolize, autoheader, autoconf, automake. Вотautogen.sh
сценарий, который я использую:РЕДАКТИРОВАТЬ
Возможно, вам понадобится добавить
ACLOCAL_AMFLAGS = -I m4
на верхний уровеньMakefile.am
.источник
ACLOCAL_AMFLAGS
переменную?Для Debian. Необходимые пакеты: m4 automake pkg-config libtool
источник
Ошибка генерируется autom4te. Если все настроено правильно, часть кода, которая генерирует эту ошибку, никогда не должна видеть «AC_MSG_ERROR», потому что она должна была быть расширена m4 до этого момента. Вы говорите, что ошибка возникает только «в некоторых настройках». Я бы предположил, что в этих настройках ваша установка autoconf будет fubar. Возможно, у вас установлена несовместимая версия m4.
источник
Использование MacOS X
было решение!
источник
В Mac OS X el captain with brew попробуйте:
brew install pkgconfig
Это сработало для меня.
источник
У этой проблемы две возможные причины:
aclocal не устанавливал.
решение : установить libtool
sudo apt-get install libtool
sudo yum install libtool
путь к LIBTOOL.m4 является ошибочным.
решение:
aclocal --print-ac-dir
для проверки текущего пути к aclocal (обычно это должно быть "/ usr / share / aclocal" или "/ usr / share / aclocal")cp /usr/share/aclocal/*.m4 /usr/local/share/aclocal/
илиcp /usr/local/share/aclocal/*.m4 /usr/share/aclocal/
)Надеюсь, поможет
источник
У меня была такая же проблема с Ubuntu (
error: possibly undefined macro: AC_MSG_ERROR
), но ответы выше не помогли мне. Я нашел решение здесьЭто помогло:
источник
Моя проблема решена после установки pkg-config на Mac (brew install pkg-config)
источник
Я решил это
yum install libtool
источник
Это случилось со мной, когда я забыл в аргументах для локально определенного макроса. Потратил часы, пытаясь разобраться (с автоинструментами почти не знаком) ...
должно было
Похоже, он должен был выдать мне ошибку или что-то подобное, но я полагаю, что будучи макропроцессором, он может делать только то, что ему сказано.
источник
Я только что потерял несколько часов на этом. Мой вывод:
источник
У меня были аналогичные проблемы при попытке создать amtk и utthpmock с помощью jhbuild.
Мне нужно было установить самую последнюю версию autoconf-archive. Инструкции находятся на https://github.com/autoconf-archive/autoconf-archive/blob/master/README-maint . В
sudo make install
конце сделал доп .Последним шагом было обновить мои
ACLOCAL_PATH
:После a
source ~/.bashrc
все макросы были наконец найдены, и сборки прошли успешно.источник
У меня была такая же проблема с портом Macports "openocd" (локально измененный файл порта для использования репозитория git) на только что установленном компьютере.
Постоянное исправление несложно, определите зависимость от pkgconfig в файле порта: depends_lib-append port: pkgconfig
источник