Проблемы с установкой/компиляцией mfcuk/libnfc на Windows

Вопрос или проблема

После множества проблем, я думаю, что успешно установил/скомпилировал libnfc, используя эти инструкции.

Теперь я пытаюсь скомпилировать/установить mfcuk. Когда я дохожу до шага ./configure, получаю следующую ошибку:

Sam@Sam-PC /c/Users/Sam/Documents/mfcuk/mfcuk-read-only
$ ./configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
./configure: line 3739: syntax error near unexpected token `LIBNFC,'
./configure: line 3739: `PKG_CHECK_MODULES(LIBNFC, libnfc >= $LIBNFC_REQUIRED_VERSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.]))'

Думаю, это связано с тем, что я неправильно указал что-то (pkg-config?), где находится libnfc? Любая помощь будет очень признательна.

Сообщение об “ошибке синтаксиса” обычно не то, что ожидается, если pkg-config не может найти модуль. Но возможно, что правильно установленный libnfc предоставит макрос LIBNFC, который configure якобы не может найти.

Вы можете попробовать ./autogen.sh, а затем снова запустить configure; это может помочь, если скрипт configure, поставляемый по умолчанию, некорректен (autogen.sh регенерирует configure из configure.in, при условии, что у вас установлены правильные зависимости (autoconf, automake, GNU make и, как правило, libtool).

Если это не сработает, вам нужно запустить ./configure –help и выяснить, какие переменные окружения нужно указать, чтобы вручную задать путь к заголовкам и библиотекам libnfc. Пути, которые нужно будет задать в окружении, будут зависеть от того, где (если вообще) вы установили libnfc… заголовочные файлы — это файлы .h, а библиотеки — это файлы .dll (или файлы .a, если вы компилируете статически).

У меня нет специфического опыта работы с mfcuk, но автоконфигурирование должно работать одинаково между пакетами… У меня есть довольно большой опыт работы с autoconf на Windows/MinGW32. Так что пишите, если застрянете.

Если пакет, который вы компилируете, — это nfc-tools, то эта проблема описана в Issue 76: Compile libnfc-llcp – error.

Утверждается, что это было исправлено в ревизии r955, датируемой 18 октября 2011 года:

libnfc-llcp: установите mqueue.h и pkg-config как требования в configure.ac (исправляет Issue 76)

Вы можете попробовать получить более новую версию configure.ac, чтобы исправить ошибку.

Страница загрузки указывает, что последняя версия nfc-eventd-0.1.5.tar.gz из ноября 2011 года может быть полезна, или вы можете попробовать svn source.

.

Ответ или решение

Установка и компиляция программ на Windows, особенно таких специфических, как mfcuk, могут потребовать дополнительных настроек и понимания используемых инструментов сборки. Рассмотрим основные проблемы и их возможные решения, которые могут возникнуть при компиляции mfcuk и libnfc, используя предоставленную информацию.

Теория

Ошибка, с которой вы столкнулись, связана с синтаксисом в скрипте configure: PKG_CHECK_MODULES(LIBNFC, libnfc >= $LIBNFC_REQUIRED_VERSION, , AC_MSG_ERROR([libnfc >= $LIBNFC_REQUIRED_VERSION is mandatory.])). Эта строка указывает на необходимость наличия пакета libnfc определенной версии. Проблема может быть связана с неправильной настройкой pkg-config, который отвечает за поиск библиотек.

Среди возможных причин ошибки:

  1. Несоответствующая версия libnfc или ее отсутствие.
  2. Неправильная конфигурация переменных среды, указывающих на заголовочные файлы и библиотеки.
  3. Неактуальная версия configure скрипта, которая может не включать необходимые изменения для Windows.

Пример

Попробуем решить эту проблему с использованием автоматической генерации конфигурационного скрипта. Установка и компиляция на Windows могут быть усложнены отсутствием необходимых инструментов или несоответствующими путями к библиотекам.

Применение

Для начала, выполните следующие шаги:

  1. Проверьте установленные зависимости. Для работы ./autogen.sh вам понадобятся autoconf, automake, GNU make и, как правило, libtool. Убедитесь, что все эти утилиты установлены и добавлены в ваш PATH.

  2. Запустите autogen.sh. Если скрипт configure устарел, сгенерируйте его заново:

    ./autogen.sh

    Это обновит configure на основе configure.ac.

  3. Установите правильные переменные среды. Возможно, вам нужно вручную указать пути к libnfc. Например:

    export PKG_CONFIG_PATH=/path/to/libnfc/lib/pkgconfig
    export C_INCLUDE_PATH=/path/to/libnfc/include
    export LIBRARY_PATH=/path/to/libnfc/lib
  4. Обновите исходный код. Возможно, проблема уже была решена в более новой версии. Проверьте базу исходного кода на обновления:
    svn source.

  5. Используйте текущие версии файлов зависимости. Обратитесь к странице скачивания nfc-tools, чтобы загрузить последние версии библиотек, необходимых для сборки.

Если все шаги выполнены верно, но проблема осталась, возможно потребуется дальнейший анализ конфигурационного файла и логов сборки. Если у вас возникнут дополнительные вопросы, мы рады помочь вам дальше.

Оцените материал
Добавить комментарий

Капча загружается...