GCC 编译器安装与配置:Linux 下的 GCC 与 Windows 下的 MinGW
说到嵌入式开发,GCC 编译器几乎是绕不开的工具。我最早接触 GCC 是在大学做 Linux 驱动实验的时候,那时候觉得装个编译器嘛,apt-get install 一下就完事了。后来进了企业,才发现事情没那么简单——不同项目对 GCC 版本有严格限制,交叉编译链的配置更是坑多。今天咱们就把 GCC 在 Linux 和 Windows 下的安装配置彻底捋一遍。
Linux 环境下的 GCC 安装
Linux 下安装 GCC 其实是最省心的。但省心不代表可以乱装。我个人习惯先确认系统里有没有现成的版本:
gcc --version
g++ --version
如果系统提示“command not found”,那就需要手动安装了。不同发行版的包管理器不一样,我列个对照表:
| 发行版 | 包管理器 | 安装命令 |
|---|---|---|
| Ubuntu / Debian | apt | sudo apt install build-essential |
| CentOS / RHEL | yum | sudo yum install gcc gcc-c++ |
| Fedora | dnf | sudo dnf install gcc gcc-c++ |
| Arch Linux | pacman | sudo pacman -S gcc |
这里有个细节:build-essential 这个包在 Ubuntu 里是个元包,它会自动拉取 GCC、G++、make、libc-dev 等核心工具链。我建议新手直接装这个,省得后面编译时缺头文件。
gcc --version 确认版本。如果项目要求特定版本(比如 GCC 9.x),可以用 sudo apt install gcc-9 g++-9 指定版本安装,然后用 update-alternatives 切换默认版本。
Windows 环境下的 MinGW 配置
Windows 上没有原生的 GCC,但我们可以用 MinGW(Minimalist GNU for Windows)来获得一个类 Linux 的编译环境。说白了,MinGW 就是 GCC 在 Windows 上的移植版。
我遇到过不少新手直接去官网下载 MinGW,结果装了一堆用不上的组件。这里我推荐两种主流方案:
方案一:MinGW-w64(推荐)
MinGW-w64 是原 MinGW 的升级版,支持 64 位和 32 位编译。我个人习惯用这个,因为它在嵌入式交叉编译场景下更稳定。
- 访问 MinGW-w64 官方页面(注意不要下错版本)
- 选择 x86_64-posix-seh 或 i686-posix-sjlj(根据你的系统架构)
- 解压到
C:\mingw-w64或你喜欢的目录
方案二:MSYS2(更现代的选择)
MSYS2 提供了一个类 Linux 的终端环境,内置 pacman 包管理器。如果你习惯 Linux 的工作流,这个方案会让你舒服很多。
# 安装基础工具链
pacman -S mingw-w64-x86_64-toolchain
# 或者只装 GCC
pacman -S mingw-w64-x86_64-gcc
MSYS2 的好处是包管理方便,更新也及时。但缺点是需要多学一个包管理器的用法。
环境变量设置
装完编译器只是第一步。如果不配环境变量,你在命令行里敲 gcc 系统还是找不到。环境变量的作用,说白了就是告诉操作系统:“嘿,我的编译器放在这个目录下,你帮我记住。”
Linux 环境变量配置
Linux 下配置环境变量通常修改 ~/.bashrc 或 ~/.zshrc:
# 打开配置文件
vim ~/.bashrc
# 在文件末尾添加
export PATH=$PATH:/usr/local/gcc-9.3.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc-9.3.0/lib
# 使配置生效
source ~/.bashrc
这里有个小技巧:如果你安装了多个 GCC 版本,可以用 alias 来区分:
alias gcc9='/usr/local/gcc-9.3.0/bin/gcc'
alias gcc10='/usr/local/gcc-10.2.0/bin/gcc'
Windows 环境变量配置
Windows 的配置稍微繁琐一点,但逻辑是一样的:
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量
- 在“系统变量”中找到 Path,双击编辑
- 点击“新建”,添加 MinGW 的 bin 目录,比如
C:\mingw-w64\mingw64\bin - 点击确定,保存退出
gcc --version。如果显示版本信息,说明配置成功。如果提示“不是内部或外部命令”,检查路径是否写错,或者有没有重启终端。
知识体系总览
下面这张图把 GCC 安装配置的核心逻辑串起来了。你想想看,从选择平台到配置环境变量,每一步都有坑,但掌握了规律就不怕了。
常见问题与避坑指南
- 版本冲突: 系统自带的 GCC 版本可能和项目要求的不一致。我建议用
update-alternatives管理多版本,或者用 Docker 隔离环境。 - 32位 vs 64位: 嵌入式开发经常需要交叉编译。MinGW-w64 的
-m32和-m64参数可以切换目标架构,但前提是你装了对应的库。 - 路径含空格: Windows 下如果 MinGW 装在
Program Files里,路径中的空格可能导致编译失败。我习惯装在C:\mingw这种无空格的目录。 - 环境变量不生效: 改了环境变量后一定要新开终端窗口。旧窗口的环境变量缓存不会自动刷新。
嗯,到这里 GCC 的安装配置就讲完了。记住一个原则:先确认需求,再选择版本,最后验证环境。别急着写代码,先把工具链搞稳了,后面才能省心。