Вопрос или проблема
У меня есть несколько NFC-чипов, которые я хотел бы читать с моей установки Ubuntu. У меня есть плата PN532 Breakout, и я хочу установить LibNFC, чтобы я мог их модифицировать и читать. Я следовал учебнику, и шаги выглядят так:
apt-get install autoconf libtool libusb-dev libpcsclite-dev build-essential
wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.1/libnfc-1.7.1.tar.bz2
tar -jxvf libnfc-1.7.1.tar.bz2
cd libnfc-1.7.1
autoreconf -vis
./configure --with-drivers=all --sysconfdir=/etc --prefix=/usr
make
sudo make install
sudo mkdir /etc/nfc
sudo mkdir /etc/nfc/devices.d
Однако я застрял на
make
Я получаю ошибку несоответствия версий, однако не знаю, как это решить, все исследования оказались бесполезными, вот фрагмент кода ошибки.
(CDPATH="${ZSH_VERSION+.}:" && cd . && autoheader) rm -f stamp-h1 touch config.h.in cd . && /bin/bash ./config.status config.h config.status: creating config.h make all-recursive make[1]: Entering directory '/home/ubuntu/libnfc-1.7.1'
Making all in libnfc
make[2]: Entering directory '/home/ubuntu/libnfc-1.7.1/libnfc' Making all in chips
make[3]: Entering directory '/home/ubuntu/libnfc-1.7.1/libnfc/chips' CC libnfcchips_la-pn53x.lo
libtool: Ошибка несоответствия версии. Это libtool 2.4.6 Debian-2.4.6-0.1, но
libtool: определение этого LT_INIT идет от libtool 2.4.2.
libtool: Вам следует воссоздать aclocal.m4 с макросами из libtool 2.4.6 Debian-2.4.6-0.1
libtool: и снова запустить autoconf.
Makefile:397: рецепт для цели 'libnfcchips_la-pn53x.lo' не удался
make[3]: *** [libnfcchips_la-pn53x.lo] Ошибка 63
make[3]: Leaving directory '/home/ubuntu/libnfc-1.7.1/libnfc/chips'
Makefile:613: рецепт для цели 'all-recursive' не удался
make[2]: *** [all-recursive] Ошибка 1
make[2]: Leaving directory '/home/ubuntu/libnfc-1.7.1/libnfc'
Makefile:478: рецепт для цели 'all-recursive' не удался
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory '/home/ubuntu/libnfc-1.7.1'
Makefile:385: рецепт для цели 'all' не удался
make: *** [all] Ошибка 2
Обновление: Я вместо этого скачал с этого сайта (это на странице wiki) и следовал файлу INSTALL (с необходимыми изменениями)
-
./configure –prefix=/usr
-
make
-
sudo make install
Это решит проблему
Попробуйте установить пакет libtool-bin
Ответ или решение
Установка LibNFC на Ubuntu
Установка библиотеки LibNFC на Ubuntu может показаться непростой задачей, особенно если вы сталкиваетесь с ошибками версии во время процесса компиляции. В данном руководстве мы пройдем по всем шагам, с которыми вы столкнетесь, и предложим стратегии для их преодоления.
Установка необходимых зависимостей
Перед началом установки LibNFC убедитесь, что у вас установлены все необходимые зависимости. Откройте терминал и выполните следующую команду:
sudo apt-get install autoconf libtool libusb-dev libpcsclite-dev build-essential
Эта команда установит инструменты, необходимые для сборки LibNFC из исходного кода.
Загрузка и распаковка источника LibNFC
Загрузите и распакуйте последнюю версию LibNFC. Выполните следующие команды:
wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.1/libnfc-1.7.1.tar.bz2
tar -jxvf libnfc-1.7.1.tar.bz2
cd libnfc-1.7.1
Генерация конфигурационных файлов
LibNFC использует систему конфигурации autoconf
. Для начала работы выполните следующие команды:
autoreconf -vis
Эта команда создаст необходимые файлы для конфигурации сборки.
Конфигурация сборки
Теперь вам нужно настроить сборку. В зависимости от вашего оборудования можете использовать следующую команду для конфигурации:
./configure --with-drivers=all --sysconfdir=/etc --prefix=/usr
Эта команда сообщает конфигурационному процессу, что вы собираете драйверы для всех поддерживаемых устройств и указываете, где должны располагаться конфигурационные файлы.
Устранение проблемы с несовместимостью версий
Если при выполнении команды make
возникает ошибка несовместимости версий libtool, как в вашем случае:
libtool: Version mismatch error. This is libtool 2.4.6, but the libtool: definition of this LT_INIT comes from libtool 2.4.2.
Это указывает на то, что ваша среда использования не совместима с установленной версией libtool. Попробуйте выполнить следующие шаги:
- Удалите старые сгенерированные файлы:
make clean
- Переустановите пакет
libtool-bin
, чтобы гарантировать, что все файлы актуализированы:
sudo apt-get install --reinstall libtool-bin
- Затем снова выполните команды генерации:
autoreconf -vis
- И снова запустите настройку и сборку:
./configure --with-drivers=all --sysconfdir=/etc --prefix=/usr
make
Установка LibNFC
Если сборка выполнена без ошибок, вы можете завершить установку с помощью следующих команд:
sudo make install
sudo mkdir /etc/nfc
sudo mkdir /etc/nfc/devices.d
Заключение
Теперь LibNFC установлен и готов к использованию. Вы можете приступить к работе с NFC-чипами, используя вашу плату PN532.
Если после выполнения всех описанных шагов у вас продолжают возникать проблемы, полезно обратиться к документации или сообществу LibNFC, где вы сможете получить помощь от других пользователей и разработчиков.
Таким образом, следуя этому руководству, вы сможете успешно установить LibNFC на Ubuntu и начать взаимодействовать с NFC-чипами. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за поддержкой.