Я пытаюсь собрать пакет udev
из https: //www.kernel. org / pub / linux / utils / kernel / hotplug / версия 182
с нашей специальной цепочкой инструментов.
Мои параметры настройки:
./configure \
--with-gnu-ld \
--prefix=%{_toolchain} \
--sysconfdir=%{_toolchain}/etc \
--libexecdir=%{_toolchain}/libexec \
--with-usb-ids-path=no \
--with-pci-ids-path=no \
--disable-introspection \
--disable-keymap
Во время make
я получаю следующую ошибку:
src/udevd-sd-daemon.o: In function `sd_is_mq':
sd-daemon.c:(.text+0xacd): undefined reference to `mq_getattr'
collect2: error: ld returned 1 exit status
make[2]: *** [udevd] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
Есть идеи, как я могу это исправить.
неопределенная ссылка
] означает, что отсутствует библиотека, в которой определен mq_getattr
. Поиск в Google по запросу mq_getattr
показывает, что это стандартная функция Linux. Чтение man mq_getattr
находит
ссылку с
-lrt
.
прямо вверху. Таким образом, вы должны добавить -lrt
к своим параметрам компоновщика, однако вы делаете это в своей пользовательской цепочке инструментов.