UDEV 构建错误 - 对“mq_getattr”的未定义引用

UDEV 构建错误 - 对“mq_getattr”的未定义引用

我正在尝试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

关于如何解决这个问题的任何想法。

答案1

该错误意味着您缺少定义的undefined reference库。mq_getattr谷歌搜索mq_getattr显示它是一个标准的 Linux 函数。阅读man mq_getattr发现

链接与-lrt.

就在顶部。因此,您必须添加-lrt到链接器选项,但是您可以在自定义工具链中执行此操作。

答案2

使用变量 LDFLAGS 配置。

 LDFLAGS='-lrt' ./configure 

相关内容