gqrx: symbol lookup error: /usr/lib/x86_64-linux-gnu/librtlsdr.so.0: undefined symbol: libusb_handle_events_timeout_completedGoogling for the error message found just a few hits: An ages old bug caused by bad versioning and a newer question without answer.
If the web doesn't have the answer, I'll need to find it myself, so ...
hajma@debian:~$ ldd -d /usr/lib/x86_64-linux-gnu/librtlsdr.so.0Indeed, there's no libusb_handle_events_timeout_completed in there.
linux-vdso.so.1 (0x00007ffc29380000)
libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f9ea0fd7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9ea0c2c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9ea0a24000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9ea0807000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9ea13f3000)
hajma@debian:~$ readelf -s /usr/local/lib/libusb-1.0.so.0|grep libusb_handle_events_
60: 0000000000005e70 215 FUNC GLOBAL DEFAULT 12 libusb_handle_events_time
80: 00000000000058a0 92 FUNC GLOBAL DEFAULT 12 libusb_handle_events_lock
237: 0000000000005e70 215 FUNC GLOBAL DEFAULT 12 libusb_handle_events_time
258: 00000000000058a0 92 FUNC GLOBAL DEFAULT 12 libusb_handle_events_lock
hajma@debian:~$ grep libusb_handle_events_timeout_completed /usr/include/libusb-1.0/libusb.hbut the header file has it, what's up? It took me a minute or two to realize that the library resides in /usr/local/lib. That's an unusual place for a Debian library, isn't it?
int LIBUSB_CALL libusb_handle_events_timeout_completed(libusb_context *ctx,
hajma@debian:~$ ls -l /usr/local/lib/libusb-1.0.so.0and googling for libmchpusb-1.0.so found me the answer:
lrwxrwxrwx 1 root root 17 Jan 25 2014 /usr/local/lib/libusb-1.0.so.0 -> libmchpusb-1.0.so
This is actually a library supplied with Microchip's MPLAB-X software I installed two years ago. It seems to be an ongoing source of frustration for their users :-)
/usr/local/lib is included by default on Debian:
hajma@debian:~$ cat /etc/ld.so.conf.d/libc.confFor the time being I workarounded this with simply removing /usr/local/lib/libusb-1.0.so.0 and it works quite well:
# libc default configuration
/usr/local/lib
No comments:
Post a Comment