4、Linux 开发环境搭建:选择 Ubuntu 22.04 LTS、配置 GCC/G++ 工具链、安装 Vim/Neovim 与 Tmux、配置 SSH 远程开发

说实话,跨平台开发这件事,绕不开 Linux。你想想看,不管是后端服务、嵌入式系统,还是移动端的交叉编译,最终都离不开 Linux 环境。我个人习惯用 Ubuntu 22.04 LTS,原因很简单——稳定、社区活跃、踩坑资料多。今天我就带你一步步把开发环境搭起来。

4.1 为什么选择 Ubuntu 22.04 LTS?

Ubuntu 22.04 是 2022 年 4 月发布的长期支持版本,支持到 2027 年。对于做跨平台编译来说,LTS 版本意味着你不会因为系统升级而突然断掉工具链。

我在项目中遇到过几次因为系统升级导致 GCC 版本不兼容的问题,后来就学乖了——开发机一律用 LTS。Ubuntu 22.04 的软件源里默认带的 GCC 是 11.x,这个版本对 C++17 和 C++20 的支持已经很成熟了。

核心优势:
  • 5 年安全更新,不用频繁折腾系统
  • 软件包丰富,apt 一键安装
  • 社区文档齐全,遇到问题容易搜到答案
  • 对 Docker、WSL2 支持良好

4.2 配置 GCC/G++ 工具链

GCC 是 GNU 编译器套件,G++ 是它的 C++ 前端。说白了,你写的 C/C++ 代码最终要变成可执行文件,全靠它。

4.2.1 安装基础工具链

先更新包索引,然后安装 build-essential。这个包会帮你把 GCC、G++、make 等基础工具一次性装好。

sudo apt update
sudo apt upgrade -y
sudo apt install build-essential -y

装完之后,验证一下版本:

gcc --version
g++ --version
make --version

嗯,这里要注意:如果你需要特定版本的 GCC,比如项目要求 GCC 9,可以用 apt 安装多个版本,然后用 update-alternatives 切换。我曾经在一个老项目里遇到过必须用 GCC 7 的情况,折腾了半天才搞定多版本共存。

4.2.2 安装 CMake 和 Ninja

跨平台编译少不了 CMake,它负责生成构建文件。Ninja 是个比 make 更快的构建工具,我强烈建议你装上。

sudo apt install cmake ninja-build -y

验证一下:

cmake --version
ninja --version
小技巧: 如果你需要交叉编译,比如在 x86 上编译 ARM 的程序,记得安装交叉编译工具链。比如 gcc-arm-linux-gnueabihf。这个后面章节会详细讲。

4.3 安装 Vim/Neovim 与 Tmux

编辑器是开发者的武器。我个人的选择是 Neovim,它是 Vim 的现代化分支,插件生态更好。Tmux 则是终端复用器,让你在一个窗口里管理多个会话。

4.3.1 安装 Neovim

Ubuntu 22.04 的默认源里 Neovim 版本比较老,我建议用官方 PPA 安装最新版。

sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update
sudo apt install neovim -y

如果你习惯用 Vim,直接装 vim 就行:

sudo apt install vim -y

我个人更推荐 Neovim,因为它支持 Lua 配置,插件管理更灵活。比如我常用的插件有:

  • nvim-treesitter:语法高亮和代码解析
  • coc.nvim:代码补全和 LSP 支持
  • vim-fugitive:Git 集成

4.3.2 安装 Tmux

Tmux 的安装很简单:

sudo apt install tmux -y

配置一下 ~/.tmux.conf,我常用的设置:

# 设置前缀键为 Ctrl+a(默认是 Ctrl+b)
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# 开启鼠标支持
set -g mouse on

# 设置历史缓冲区大小
set -g history-limit 50000

# 分屏快捷键
bind | split-window -h
bind - split-window -v

为什么要用 Tmux?说白了,你 SSH 到远程服务器后,如果网络断了,会话就丢了。Tmux 的会话是持久化的,重连后还能恢复。我在部署生产环境时,从来都是先开 Tmux,再执行长时间的任务。

避坑指南: 我曾经在没开 Tmux 的情况下直接编译一个大型项目,编译到一半 SSH 断开了,结果前功尽弃。从那以后,任何超过 5 分钟的任务,我都会先开 Tmux。

4.4 配置 SSH 远程开发

跨平台开发经常需要远程连接服务器。SSH 是最基本的方式,但我们要让它更安全、更高效。

4.4.1 安装和启动 SSH 服务

sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh

检查服务状态:

sudo systemctl status ssh

4.4.2 配置密钥登录

密码登录不安全,也麻烦。我建议用密钥对登录。

在本地机器上生成密钥:

ssh-keygen -t ed25519 -C "your_email@example.com"

然后把公钥复制到服务器:

ssh-copy-id user@your-server-ip

最后,禁用密码登录:

sudo vim /etc/ssh/sshd_config
# 修改以下配置
PasswordAuthentication no
PubkeyAuthentication yes

sudo systemctl restart ssh
为什么用 ed25519? 它比 RSA 更安全,密钥更短,生成速度更快。我所有的新项目都改用 ed25519 了。

4.4.3 配置 SSH 客户端优化

在本地 ~/.ssh/config 里添加配置,可以省去每次输入 IP 的麻烦:

Host dev-server
    HostName 192.168.1.100
    User ubuntu
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60
    ServerAliveCountMax 3

这样,你只需要 ssh dev-server 就能连上了。

4.5 本章知识体系

下面这张图帮你梳理了本章的核心逻辑:

Linux 开发环境搭建知识体系 Ubuntu 22.04 LTS GCC/G++ 工具链 build-essential CMake + Ninja 多版本管理 Vim / Neovim 插件管理 LSP 支持 Git 集成 Tmux 会话持久化 分屏管理 快捷键配置 SSH 远程开发 密钥登录 服务配置 客户端优化

4.6 验证环境

最后,写个简单的程序验证一下整个环境是否正常:

// hello.cpp
#include <iostream>

int main() {
    std::cout << "Hello, Cross-Platform World!" << std::endl;
    return 0;
}

编译运行:

g++ hello.cpp -o hello
./hello

如果看到输出,说明你的 Linux 开发环境已经搭建成功了。

我的建议: 环境搭好后,花 10 分钟熟悉一下 Tmux 的基本操作。你想想看,以后每次远程开发都要用到它,早学会早受益。

好了,这一章的内容就到这里。环境搭好了,下一章我们就可以开始真正的跨平台编译实战了。

可可精品资料库