![UDEV 빌드 오류 - 'mq_getattr'에 대한 정의되지 않은 참조](https://linux55.com/image/113016/UDEV%20%EB%B9%8C%EB%93%9C%20%EC%98%A4%EB%A5%98%20-%20'mq_getattr'%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%A0%95%EC%9D%98%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EC%B0%B8%EC%A1%B0.png)
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
Google 검색에 mq_getattr
따르면 이는 표준 Linux 기능입니다. 읽고 man mq_getattr
발견하세요
와 연결하세요
-lrt
.
바로 상단에 있습니다. 따라서 -lrt
링커 옵션에 추가해야 하지만 사용자 정의 도구 모음에서 이 작업을 수행할 수 있습니다.
답변2
LDFLAGS 변수를 사용하여 구성합니다.
LDFLAGS='-lrt' ./configure