news 2026/4/25 6:35:12

在WSL2 Ubuntu 20.04上,手把手教你从源码编译安装QEMU 6.2.0(含依赖库完整清单)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在WSL2 Ubuntu 20.04上,手把手教你从源码编译安装QEMU 6.2.0(含依赖库完整清单)

在WSL2 Ubuntu 20.04上从源码构建QEMU 6.2.0的完整指南

如果你正在为OpenHarmony设备开发或其他嵌入式项目搭建虚拟化环境,QEMU无疑是最强大的工具之一。不同于直接安装预编译版本,从源码构建能让你获得最新功能、自定义模块支持以及针对特定架构的优化。本文将带你完整走过在WSL2 Ubuntu 20.04环境下编译安装QEMU 6.2.0的全过程,包括那些官方文档没明说但实际会遇到的各种"坑"。

1. 环境准备与依赖安装

在WSL2中编译QEMU前,确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端,执行以下命令更新软件包列表:

sudo apt update && sudo apt upgrade -y

QEMU的编译依赖相当丰富,特别是当需要支持多种架构仿真时。以下是经过实测的完整依赖清单,按功能分类安装:

基础构建工具组

sudo apt install -y build-essential autoconf libtool pkg-config

核心依赖库

sudo apt install -y zlib1g-dev libglib2.0-dev libpixman-1-dev libgcrypt20-dev

可选功能支持库(建议全部安装以获得完整功能):

sudo apt install -y libssl-dev libvdeplug-dev libjpeg-dev libsnappy-dev \ libspice-server-dev libbluetooth-dev libboost-all-dev binutils-dev \ flex bison ninja-build

注意:ninja-build是QEMU 6.x版本构建系统的关键组件,缺少它会导致configure阶段失败,但错误提示可能并不直观。

如果遇到类似libpng版本冲突的问题(特别是需要兼容旧项目时),可以添加特定PPA源:

sudo add-apt-repository ppa:linuxuprising/libpng12 sudo apt update sudo apt install libpng12-dev

2. 获取QEMU源码的最佳实践

官方推荐从qemu.org下载源码包,但在国内网络环境下往往速度不理想。这里提供三种可靠的源码获取方式:

方法一:使用镜像加速下载压缩包

wget https://mirrors.ustc.edu.cn/qemu/qemu-6.2.0.tar.xz tar xvJf qemu-6.2.0.tar.xz cd qemu-6.2.0

方法二:从GitHub克隆(推荐开发者使用)

git clone --branch v6.2.0 https://github.com/qemu/qemu.git cd qemu git submodule update --init --recursive

方法三:使用gitee镜像(适合国内用户)

git clone --depth 1 --branch v6.2.0 https://gitee.com/mirrors/qemu.git cd qemu

对于需要长期跟踪QEMU开发的用户,建议选择Git方式,便于后续更新。首次克隆后记得初始化子模块,这是很多编译错误的根源。

3. 配置与编译的进阶技巧

进入源码目录后,先创建一个独立的构建目录是良好的实践:

mkdir build && cd build

配置阶段使用--prefix参数指定安装路径(如/opt/qemu),避免污染系统目录:

../configure --prefix=/opt/qemu --enable-debug --target-list=x86_64-softmmu,aarch64-softmmu

关键参数说明:

参数作用推荐设置
--prefix安装路径自定义路径如/opt/qemu
--target-list目标架构按需选择,减少编译时间
--enable-debug调试支持开发环境建议开启
--enable-kvmKVM加速主机支持时启用

提示:在WSL2中KVM加速不可用,因此无需添加--enable-kvm参数。

配置完成后,使用并行编译大幅缩短时间(数字根据CPU核心数调整):

make -j$(nproc)

编译过程可能持续10-30分钟,取决于硬件性能。期间可能会遇到以下常见问题:

  1. 报错缺少Python模块:确保已安装python3-pip并执行pip3 install meson
  2. glib版本问题:Ubuntu 20.04默认glib版本足够,无需担心
  3. 网络超时导致子模块下载失败:重试命令或手动配置代理

4. 安装与验证

编译成功后,执行安装命令:

sudo make install

将QEMU添加到系统路径(假设安装到/opt/qemu):

echo 'export PATH=/opt/qemu/bin:$PATH' >> ~/.bashrc source ~/.bashrc

验证安装是否成功:

qemu-system-x86_64 --version

预期输出应显示类似:

QEMU emulator version 6.2.0 Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

5. 多架构支持与疑难排解

对于OpenHarmony开发,经常需要处理不同架构的仿真需求。以下是针对特殊架构的补充指南:

ARM架构支持: 重新配置时添加arm相关target:

../configure --prefix=/opt/qemu --target-list=arm-softmmu,aarch64-softmmu

RISC-V架构支持: 需要额外安装riscv工具链:

sudo apt install gcc-riscv64-linux-gnu

库版本冲突解决方案: 当遇到类似libbrlapi.so.0.6 not found的错误时,可以创建符号链接:

sudo ln -s /usr/lib/x86_64-linux-gnu/libbrlapi.so.0.7.0 \ /usr/lib/x86_64-linux-gnu/libbrlapi.so.0.6

6. 集成开发环境配置

为提升开发效率,建议配置VS Code作为QEMU开发环境:

  1. 安装C/C++扩展
  2. 创建.vscode/c_cpp_properties.json
{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/opt/qemu/include" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu11", "cppStandard": "gnu++14" } ], "version": 4 }
  1. 添加调试配置(针对QEMU自身开发):
{ "name": "Debug QEMU", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/qemu-system-x86_64", "args": ["-h"], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb" }

7. 性能优化与日常使用技巧

在WSL2环境下运行QEMU时,可以采取以下措施提升性能:

  • 将QEMU磁盘镜像存放在WSL2文件系统内(非/mnt/c)
  • 使用qcow2格式镜像节省空间:
qemu-img create -f qcow2 disk.qcow2 10G
  • 启动时启用多核CPU支持:
qemu-system-x86_64 -smp 4 -m 4G -hda disk.qcow2

常用调试命令备忘:

# 启用GDB调试服务器 qemu-system-x86_64 -s -S -hda disk.qcow2 # 网络桥接配置(需额外设置) -netdev user,id=net0 -device e1000,netdev=net0

最后,记得定期更新代码并重新编译以获取最新修复:

git pull origin stable-6.2 make clean && make -j$(nproc) sudo make install
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 6:34:33

人工智能提示词总结篇:写给未来的自己

总结篇:写给未来的自己📝 本章学习目标:掌握总结篇:写给未来中高效使用提示词的方法和技巧。一、引言 总结篇:写给未来是提示词应用的重要场景之一。本章将系统讲解如何在该领域高效使用提示词。 ✅ 核心应用场景一 ✅…

作者头像 李华
网站建设 2026/4/25 6:25:41

C盘空间清理自动化脚本:基于Qwen3-14B-Int4-AWQ生成智能清理方案

C盘空间清理自动化脚本:基于Qwen3-14B-Int4-AWQ生成智能清理方案 1. 引言:C盘空间告急的日常困扰 "您的C盘空间不足"——这个弹窗可能是Windows用户最不愿看到的提示之一。随着系统运行时间的增长,临时文件、日志记录、软件缓存等…

作者头像 李华
网站建设 2026/4/25 6:24:02

WeDLM-7B-Base镜像免配置:多语言界面支持(中/英/日)与本地化实践

WeDLM-7B-Base镜像免配置:多语言界面支持(中/英/日)与本地化实践 1. 开箱即用的多语言模型体验 WeDLM-7B-Base是一款基于扩散机制的高性能语言模型,拥有70亿参数规模。与传统的自回归模型不同,它采用创新的并行解码技…

作者头像 李华
网站建设 2026/4/25 6:20:42

Qwen3.5-4B-AWQ保姆级教程:WebUI界面Prompt工程最佳实践

Qwen3.5-4B-AWQ保姆级教程:WebUI界面Prompt工程最佳实践 1. 模型介绍与环境准备 Qwen3.5-4B-AWQ-4bit是阿里云通义千问团队推出的轻量级大语言模型,经过4bit AWQ量化后显存占用仅约3GB,可在RTX 3060/4060等消费级显卡上流畅运行。该模型在保…

作者头像 李华