4、Linux 环境准备(Ubuntu 22.04):虚拟机搭建与 WSL2 配置

好,咱们进入实战环节了。跨平台编译,说白了你得先有个 Linux 环境。Windows 虽然也能搞,但很多底层工具链、交叉编译器,原生跑在 Linux 上才最省心。我个人习惯用 Ubuntu 22.04 LTS,稳定,社区活跃,踩坑了也好找答案。

这一章,我带你搞定三种最常见的搭建方式:VirtualBox 虚拟机、VMware 虚拟机,还有微软亲儿子 WSL2。你选一种就行,但我建议你都看看,因为不同场景下各有优劣。

核心目标: 拥有一台能联网、能装软件、能编译 C/C++ 代码的 Ubuntu 22.04 环境。

4.1 虚拟机方案:VirtualBox vs VMware

先说说虚拟机。你想想看,在 Windows 里跑一个完整的 Linux 桌面,最直观的方式就是虚拟机。我最早学 Linux 时用的就是 VirtualBox,免费,够用。

4.1.1 VirtualBox 搭建步骤

  1. 下载安装 VirtualBox:去官网下最新版,安装时一路默认就行。嗯,这里要注意,如果你的电脑开启了 Hyper-V,可能会冲突。我遇到过这种情况,装完后虚拟机起不来,后来关了 Hyper-V 才解决。
  2. 下载 Ubuntu 22.04 ISO:建议用桌面版(Desktop),方便调试。服务器版也行,但没图形界面,新手容易懵。
  3. 创建虚拟机:
    • 名称:ubuntu-22.04
    • 类型:Linux
    • 版本:Ubuntu (64-bit)
    • 内存:至少 4GB,我一般给 8GB
    • 硬盘:20GB 起步,建议 40GB,后面装 SDK 很占空间
  4. 安装系统:挂载 ISO,启动虚拟机,按提示安装。语言选中文,分区默认就行。
  5. 安装增强功能:装完后,在 VirtualBox 菜单里点击「设备」→「安装增强功能」。这能解决屏幕分辨率、剪贴板共享等问题。我曾经忘了这步,结果屏幕只有 800x600,代码都看不清。

我的小技巧: 虚拟机网络模式选「桥接网卡」,这样你的 Ubuntu 和宿主机在同一网段,方便 SSH 连接。

4.1.2 VMware Workstation 搭建

VMware 比 VirtualBox 更稳定,性能也稍好。如果你公司有正版授权,或者你愿意付费,VMware 是更好的选择。步骤类似:

  • 下载 VMware Workstation Pro 或 Player(免费版够用)
  • 创建虚拟机时选择「典型」配置,ISO 选 Ubuntu 22.04
  • 硬件配置:CPU 至少 2 核,内存 4GB+,硬盘 40GB
  • 装完后安装 VMware Tools,相当于 VirtualBox 的增强功能

我个人更倾向 VMware,因为它的快照功能更可靠。做实验前打个快照,搞坏了直接恢复,省心。

4.2 WSL2:Windows 上的原生 Linux

如果你不想装虚拟机,或者电脑配置一般,WSL2 是绝佳选择。它不像虚拟机那样模拟硬件,而是直接在 Windows 内核上跑 Linux 内核。启动快,资源占用低。

4.2.1 安装 WSL2

步骤很简单,但有几个坑。我一步步说:

  1. 启用 WSL 功能:以管理员身份打开 PowerShell,运行:
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  2. 启用虚拟机平台:
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  3. 重启电脑。
  4. 设置 WSL2 为默认版本:
    wsl --set-default-version 2
  5. 安装 Ubuntu 22.04:在 Microsoft Store 搜索「Ubuntu 22.04」,点击安装。或者用命令行:
    wsl --install -d Ubuntu-22.04
  6. 初始化:首次启动会要求创建用户名和密码。注意,这个密码和 Windows 密码无关。

避坑指南: 我曾经在安装 WSL2 时遇到「0x80370102」错误,原因是 BIOS 里没开启虚拟化。进 BIOS 开启 Intel VT-x 或 AMD-V 就好了。

4.2.2 WSL2 配置优化

装完只是第一步。有几个配置我建议你立刻做:

  • 设置内存限制:WSL2 默认会吃掉你一半内存。在用户目录下创建 .wslconfig 文件,写入:
    [wsl2]
    memory=4GB
    processors=2
    localhostForwarding=true
  • 文件互访:WSL2 的文件在 \\wsl$\Ubuntu-22.04 路径下。Windows 的 C:\ 盘挂载在 /mnt/c/。我建议把项目代码放在 Linux 文件系统里,IO 性能更好。
  • 安装 Windows Terminal:微软官方出品,比 cmd 和 PowerShell 好用太多。支持多标签、主题、快捷键。

4.3 Ubuntu 基础系统更新与软件源配置

环境搭好了,第一件事就是更新系统。你想想看,刚装好的系统,软件包版本可能比较老,源也可能在国外,下载慢得让人抓狂。

4.3.1 更换软件源为国内镜像

我个人习惯用阿里云或清华的源。步骤:

  1. 备份原源文件:
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 编辑源文件:
    sudo vim /etc/apt/sources.list
  3. 将内容替换为(以阿里云为例):
    deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
  4. 更新索引:
    sudo apt update

注意: Ubuntu 22.04 的代号是 jammy。如果你用其他版本,记得改代号。我曾经帮同事排查问题,发现他复制了 20.04 的源,结果一堆依赖冲突。

4.3.2 系统更新与基础软件安装

更新系统:

sudo apt upgrade -y
sudo apt dist-upgrade -y

安装编译必备工具:

sudo apt install -y build-essential cmake git curl wget vim gdb

build-essential 包含了 gcc、g++、make 等核心工具。我每次装新环境,第一件事就是跑这条命令。没有它,啥都编译不了。

4.3.3 验证环境

装完后,验证一下:

gcc --version
cmake --version
git --version

看到版本号输出,说明环境就绪了。

4.4 本章知识体系图

下面这张图帮你理清思路:

Linux 环境准备(Ubuntu 22.04)知识体系 虚拟机方案 VirtualBox VMware 安装 → 配置 → 增强功能 WSL2 方案 启用 WSL → 安装 Ubuntu 配置 .wslconfig → 优化性能 系统配置 更换软件源 apt update & upgrade ✅ 可用的 Ubuntu 22.04 编译环境

三种方式各有适用场景。虚拟机适合需要完整桌面环境的场景,WSL2 适合命令行重度用户。我个人在开发时用 WSL2,在测试完整构建流程时用虚拟机。你根据自己情况选就好。

总结一下: 环境准备是跨平台编译的第一步,也是最容易出问题的一步。把源配好、工具装全,后面编译各种目标平台代码时才能顺风顺水。

可可精品资料库