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