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/
我在 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/