Udev

UDEV 建構錯誤 - 未定義對“mq_getattr”的引用

  • December 2, 2020

我正在嘗試使用我們的自定義工具鏈從https://www.kernel.org/pub/linux/utils/kernel/hotplug/版本建構udev包。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

關於如何解決這個問題的任何想法。

undefined reference錯誤意味著您缺少mq_getattr定義的庫。Google搜尋mq_getattr顯示它是標準的 Linux 功能。閱讀man mq_getattr發現

與 連結-lrt

就在頂部。因此,您必須添加-lrt到您的連結器選項,但是您可以在自定義工具鏈中執行此操作。

使用變數 LDFLAGS 進行配置。

LDFLAGS='-lrt' ./configure 

引用自:https://unix.stackexchange.com/questions/369858