Вопрос или проблема
Во время компиляции настраиваемой сборки (с использованием buildroot v. 11.2018) у меня возникла проблема с библиотекой libmount (проблема появилась после того, как я включил пакет efl в меню конфигурации buildroot – Целевые пакеты -> Графические библиотеки… -> efl). Я дополнительно установил пакет libmount-dev, но это ничего не дало.
checking for getxattr in -lc... yes
checking sys/xattr.h usability... yes
checking sys/xattr.h presence... yes
checking for sys/xattr.h... yes
checking for XATTR_NOFOLLOW... no
checking for LIBMOUNT... no
configure: error: *** Не удалось найти libmount
Как включить эту библиотеку, чтобы успешно скомпилировать?
Установка libmount-dev
на вашу систему ничего не изменит: то, чего здесь не хватает, это libmount для целевой системы, а не для машины сборки. libmount предоставляется пакетом util-linux.
Какова ваша конфигурация Buildroot? EFL должен нуждаться в libmount только в том случае, если включен BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT. Если вы попали в эту ситуацию с выключенным BR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT, то это ошибка в Buildroot.
Не могли бы вы заполнить баг-репорт в трекере ошибок Buildroot по адресу https://bugs.busybox.net/, указав точную версию Buildroot, которую вы используете, и прикрепив ваш файл .config Buildroot, который позволяет воспроизвести проблему?
Также, пожалуйста, убедитесь, что эта ошибка возникает после полностью чистой сборки, т.е. “make clean && make”.
Я столкнулся с такой же проблемой, когда пытался собрать libglib2
в Buildroot-2019.02.5 (mc
зависимость). libmount
был проверен (Целевые пакеты -> Системные инструменты -> util-linux -> libmount), но make libglib2-configure
завершился с ошибкой. Проблема была решена после того, как я включил утилиты mount/umount
в конфигурации util-linux
, пересобрал её и весь rootfs.
make util-linux-dirclean
make util-linux-build
make
Ответ или решение
Проблема с отсутствием библиотеки libmount
во время компиляции системы с использованием Buildroot может возникать по нескольким причинам. Рассмотрим основные шаги для ее устранения и обеспечения успешной сборки.
Анализ проблемы
На основании предоставленной информации, ошибка возникает в процессе конфигурации, когда система не может обнаружить библиотеку libmount
. Это в частности происходит после добавления пакета EFL в конфигурацию Buildroot. Ваша установка пакета libmount-dev
на хост-системе не приводит к изменениям, так как необходимая библиотека должна быть частью целевой системы.
Шаги для решения проблемы
-
Проверка конфигурации Buildroot:
Вам необходимо убедиться, что в конфигурации Buildroot включены все необходимые опции, касающиесяlibmount
и связанных с ним библиотек. Убедитесь, что опцияBR2_PACKAGE_EFL_UTIL_LINUX_LIBMOUNT
активирована. Эта опция отвечает за включениеlibmount
в сборку пакетаutil-linux
, который предоставляет необходимую библиотеку. -
Очистка сборки:
Перед тем как повторно запустить сборку, выполните полную очистку проекта:make clean && make
Это гарантирует, что сборка будет выполнена с нуля, без влияния остатков предыдущих сборок.
-
Включение утилит
mount
иumount
:
В некоторых случаях, даже еслиlibmount
активирован, компоненты, такие как утилитыmount
иumount
должны быть включены в конфигурациюutil-linux
. Проверьте настройки в Buildroot и убедитесь, что эти утилиты выбраны.Для этого вам следует:
- Перейти в меню конфигурации
util-linux
. - Убедиться, что опции для
mount
иumount
включены.
После внесения изменений выполните повторную сборку:
make util-linux-dirclean make util-linux-build make
- Перейти в меню конфигурации
-
Создание отчетов о баге:
Если после всех вышеописанных шагов проблема остается, вы можете заполнить отчет о баге в системе отслеживания ошибок Buildroot. Укажите:- Точную версию Buildroot.
- Приложите ваш файл конфигурации
.config
, который позволяет воспроизвести ошибку. Это поможет разработчикам понять, в чем может быть проблема.
Для подачи отчета воспользуйтесь сайтом: Bugzilla Buildroot.
Заключение
Ошибки, связанные с отсутствием libmount
, часто являются следствием неправильной конфигурации или недостаточных опций в сборке. Следуя приведенным рекомендациям, вы сможете устранить проблему и успешно завершить сборку вашего кастомизированного дистрибутива. Если же проблема продолжает возникать, не стесняйтесь обращаться за поддержкой к сообществу Buildroot или подавать отчет о баге для дальнейшего анализа.