4. Linux 开发环境搭建
说实话,跨平台开发这件事,绕不开 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
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,再执行长时间的任务。
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
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 本章知识体系
下面这张图帮你梳理了本章的核心逻辑:
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 开发环境已经搭建成功了。