- Вопрос или проблема
- Ответ или решение
- Описание проблемы
- Возможные причины ошибки
- Рекомендации по устранению ошибок
- Шаг 1: Установите необходимые инструменты
- Шаг 2: Проверьте наличие необходимых файлов
- Шаг 3: Используйте m4_pattern_allow (при необходимости)
- Шаг 4: Обновите автоколлекцию
- Шаг 5: Проверьте документацию и примеры
- Заключение
Вопрос или проблема
я получаю 4 ошибки при выполнении “sudo ./autogen.sh” для автоматизации сборки исходников linuxcnc RTAI, и выводы следующие
configure.ac:62: ошибка: Возможно, неопределенный макрос: AC_SUBST
Если этот токен и другие законны, пожалуйста, используйте m4_pattern_allow.
См. документацию Autoconf
configure.ac:157: ошибка: Возможно, неопределенный макрос: AC_MSG_WARN
configure.ac:376: ошибка: Возможно, неопределенный макрос: AC_DEFINE_UNQUOTED
configure.ac:540: ошибка: Возможно, неопределенный макрос: AC_MSG_NOTICE
Ответ или решение
При выполнении команды sudo ./autogen.sh
для автоматизации сборки исходного кода LinuxCNC с использованием RTAI возникают четыре ошибки, связанные с неопределенными макросами в файле configure.ac
. Давайте разберем каждую ошибку и предложим возможные решения.
Описание проблемы
Ошибки, которые вы получили при запуске скрипта autogen.sh
, указывают на то, что некоторые из макросов, используемых в файле configure.ac
, не определены. Конкретно вы видите следующие сообщения:
error: Possibly undefined macro: AC_SUBST
error: Possibly undefined macro: AC_MSG_WARN
error: Possibly undefined macro: AC_DEFINE_UNQUOTED
error: Possibly undefined macro: AC_MSG_NOTICE
Эти ошибки могут возникнуть по разным причинам, связанным с конфигурацией вашей системы или отсутствием необходимых пакетов.
Возможные причины ошибки
-
Недостаток зависимостей: Ошибки могут возникнуть, если в системе не установлены необходимые инструменты для сборки, такие как
autoconf
,automake
, иlibtool
. -
Ошибки в
configure.ac
: В случае, если файлconfigure.ac
ссылается на макросы, которые не были определены, это может указывать на неправильное написание скрипта или отсутствие нужных файлов. -
Версия утилит: Иногда несовместимость версий
autoconf
иautomake
может вызывать такие ошибки.
Рекомендации по устранению ошибок
Шаг 1: Установите необходимые инструменты
Убедитесь, что у вас установлены все необходимые инструменты для работы с autogen.sh
. Выполните следующие команды для установки:
sudo apt update
sudo apt install autoconf automake libtool
Эти команды установят базовые инструменты, необходимые для автогенерации конфигураций.
Шаг 2: Проверьте наличие необходимых файлов
Locate the definitions for the macros that are causing issues. For example, AC_SUBST
, AC_MSG_WARN
, AC_DEFINE_UNQUOTED
, and AC_MSG_NOTICE
are commonly found in autoconf
and automake
packages. Ensure that these definitions are included. You can check this by looking at the m4 files usually located in /usr/share/aclocal
or /usr/share/m4
.
Шаг 3: Используйте m4_pattern_allow (при необходимости)
Если у вас есть уверенность в том, что ошибка является ложной (макрос действительно определен и работает), вы можете использовать m4_pattern_allow
в начале вашего configure.ac
. Например:
m4_pattern_allow([AC_SUBST])
m4_pattern_allow([AC_MSG_WARN])
Однако этот шаг обычно не рекомендуется без тщательной проверки.
Шаг 4: Обновите автоколлекцию
Если вышеописанные шаги не помогают, попробуйте обновить autoconf
и automake
до последней версии:
sudo apt upgrade autoconf automake
Шаг 5: Проверьте документацию и примеры
Возможно, стоит посмотреть на примеры использования в документации Autoconf и Automake, чтобы убедиться, что используемые вами макросы корректны:
Заключение
Ошибки, связанные с неопределенными макросами при запуске sudo ./autogen.sh
, могут быть вызваны отсутствием необходимых инструментов, неверной конфигурацией или устаревшими версиями пакетов. Убедившись, что все зависимости установлены и обновлены, вы сможете успешно выполнить автоматическую генерацию конфигураций и продолжить процесс сборки проекта LinuxCNC с использованием RTAI.