qemu-system-aarch64:未定义的符号:libusb_free_streams

qemu-system-aarch64: undefined symbol: libusb_free_streams

我在 Ubuntu

上使用 qemu 时遇到问题
hoan@hoan-pfiev09:~$ qemu-system-aarch64 
qemu-system-aarch64: symbol
lookup error: qemu-system-aarch64: undefined symbol:
libusb_free_streams hoan@hoan-pfiev09:~$

(其实我要的命令是运行:qemu-system-aarch64 -m 1024 -cpu cortex-a57 -M virt -nographic -kernel openwrt-arm64-qemu-virt.Image)

虽然我用命令sudo apt-get install libusb-1.0-0-dev安装了libusb,但无法解决这个问题。

hoan@hoan-pfiev09:~$ ldd /usr/bin/qemu-system-aarch64 | grep usb    libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f2bc8849000)  libusbredirparser.so.1 => /usr/lib/x86_64-linux-gnu/libusbredirparser.so.1 (0x00007f2bc8641000) hoan@hoan-pfiev09:~$

如何解决这个问题?

hoan@hoan-pfiev09:~$ ldd /usr/bin/qemu-system-aarch64 |grep usb     libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f705b013000)  libusbredirparser.so.1 => /usr/lib/x86_64-linux-gnu/libusbredirparser.so.1 (0x00007f705ae0b000) hoan@hoan-pfiev09:~$  hoan@hoan-pfiev09:~$  hoan@hoan-pfiev09:~$ ls /usr/local/lib/libusb-1.0.* -lia 14156758 -rw-r--r-- 1 root root 598258  7月 23 19:25 /usr/local/lib/libusb-1.0.a 14156755 -rwxr-xr-x 1 root root    954  7月 23 19:25 /usr/local/lib/libusb-1.0.la 14156754 lrwxrwxrwx 1 root root     19  7月 23 19:25 /usr/local/lib/libusb-1.0.so -> libusb-1.0.so.0.1.0 14156753 lrwxrwxrwx 1 root root     19  7月 23 19:25 /usr/local/lib/libusb-1.0.so.0 -> libusb-1.0.so.0.1.0 14156267
-rwxr-xr-x 1 root root 343240  7月 23 19:25 /usr/local/lib/libusb-1.0.so.0.1.0 hoan@hoan-pfiev09:~$

hoan@hoan-pfiev09:~$ strings /usr/local/lib/libusb-1.0.a | grep libusb_free_streams hoan@hoan-pfiev09:~$

添加更多信息

hoan@hoan-pfiev09:~$ ldd /usr/bin/qemu-system-aarch64 | grep usb libusb-1.0.so.0 => /usr/local/lib/libusb-1.0.so.0 (0x00007f00a6281000) libusbredirparser.so.1 => /usr/lib/x86_64-linux-gnu/libusbredirparser.so.1 (0x00007f00a6079000) hoan@hoan-pfiev09:~$

类似的事情我见过好几次了。我自学的猜测是,实际上这个特定的 QEMU 包需要更新版本的 libusb。所以解决方案是将您的 libusb 升级到最新版本。或者至少是满足您安装 QEMU 的版本。

此外,库名称通常是特定库版本的符号 link。您可能安装了更新版本的库,但 link 仍会指向旧版本。请检查 /usr/local/lib/ 中的 libusb 库,并检查 link /lib/XXX/libusb-1.0.so.

感谢阅读我的问题。 我找到了答案 [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=711589][1] 这里有一个 link 库不正确。

已通过命令修复:

sudo ln -sf /lib/x86_64-linux-gnu/libusb-1.0.so.0  /usr/local/lib/libusb-1.0.so.0

此错误也由命令

修复

hoan@hoan-pfiev09:~$ sudo ldconfig /lib/x86_64-linux-gnu/