网络后端“用户”未编译到此二进制文件中

Dim*_*ims 5 qemu configure qemu-device-backend

我已经构建了qemu-7.2.0,然后,当运行它时,我得到了

qemu-system-x86_64: -nic user,model=virtio: network backend 'user' is not compiled into this binary
Run Code Online (Sandbox Code Playgroud)

显然,我应该在构建期间启用此功能,但如何知道它到底是哪个?

Pet*_*ell 10

“user”网络后端由“slirp”库提供;当 QEMU 二进制文件是在没有编译 slirp 支持的情况下构建时,您会收到此消息。

正如7.2 变更日志中所述,QEMU 不再附带 slirp 模块及其源代码的副本。相反,在配置和构建 QEMU 之前,您需要确保已安装发行版的 libslirp 开发包(可能称为 libslirp-devel 或 libslirp-dev 或类似的东西)。您至少需要 libslirp 4.7 或更高版本。

QEMU 需要一些构建时依赖性的可选功能的配置约定是:

  • 默认情况下,检查依赖关系,如果找到它就构建该功能
  • 如果传递了 --enable-foo,则检查依赖关系,如果缺少,则配置失败并显示错误
  • 如果 --disable-foo 被传递,则不检查,并且永远不会构建该功能

--enable-slirp因此,如果您没有依赖项,您可以通过configure强制它给您一个错误,作为检查您是否为libslirp安装了正确的系统包的方法。