Сообщение об ошибке не означает, что в вашей системе что-то не так с libnfc
. Что-то не так в скрипте оболочки configure
.
Скрипт configure
не выполнил проверку для libnfc
.Сообщение об ошибке о синтаксической ошибке в сценарии оболочки в строке, предназначенной для этой проверки.
./configure: line 3930: syntax error near unexpected token `libnfc,'
./configure: line 3930: `PKG_CHECK_MODULES(libnfc, libnfc >= $LIBNFC_REQUIRED_VERSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.]))'
Это не совсем соответствует номерам строк в сценарииты показываешь на пастбине.Здесь ошибка в строке 3963.
Фрагмент скрипта, начинающийся со строки 3949
...
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
$as_echo "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
# Checks for pkg-config modules.
LIBNFC_REQUIRED_VERSION=1.7.0
PKG_CHECK_MODULES(libnfc, libnfc >= $LIBNFC_REQUIRED_VERSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.]))
PKG_CONFIG_REQUIRES="libnfc"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
if ${ac_cv_c_inline+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
...
Перед строкой комментария # Checks for pkg-config modules.
он выглядит как обычный скрипт конфигурации.
Неверная строка PKG_CHECK_MODULES(libnfc, libnfc >= $LIBNFC_REQUIRED_VERSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.]))
. Это код макросов M5 для автоинструментов, а не скрипт оболочки.
С { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
он снова выглядит нормально.
configure
скрипт генерируется из configure.in
или configure.ac
.Этот источник - макрос-скрипт M5, использующий специальные макросы autotools.Весь текст, который не является известным макросом, копируется в выходной файл без изменений.
Проблемная строка PKG_CHECK_MODULES(libnfc, libnfc >= $LIBNFC_REQUIRED_VERSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.]))
представляет собой вызов макроса M5 PKG_CHECK_MODULES()
с несколькими параметрами, последним из которых является другой вызов макроса AC_MSG_ERROR()
саргумент в кавычках.
Я не знаю, почему это закончилось в скрипте настройки, но это, очевидно, неправильно.Возможно, в скрипте configure.ac
есть ошибка, возможно, для генерации скрипта configure
была использована неправильная версия автоинструментов.