fedora系统安装gcc推荐用dnf groupinstall "development tools",一步装齐gcc、g++(即gcc-c++)、make等全套开发工具;单独安装需配对执行sudo dnf install gcc和sudo dnf install gcc-c++,并补装libstdc++-devel以防头文件缺失。

Fedora 系统上装 GCC 不是“能不能装”,而是“选哪种方式更稳、更少坑”——默认不带编译器,但官方包管理器能一步到位,不用源码编译,除非你有特殊版本需求。
用 dnf groupinstall 装全量开发工具(推荐)
这是 Fedora 官方推荐做法,一次性装齐 gcc、g++、make、debuginfo 等常用开发组件,避免漏装导致后续编译报错(比如 fatal error: bits/libc-header-start.h: No such file or directory)。
- 运行命令:
sudo dnf groupinstall "Development Tools" - 它会自动拉取
gcc、gcc-c++、binutils、make、rpm-build等核心包 - 验证是否成功:
gcc --version和g++ --version都应输出版本号 - 注意:Fedora 36+ 默认用
dnf,不是yum;旧版(如 F21 及更早)才用yum
只装 gcc 和 g++ 单独包(够用但易踩坑)
如果你只想最小化安装,可以单独装,但必须配对:装 gcc 不等于能编译 C++,g++ 在 Fedora 中对应包名是 gcc-c++,不是 g++。
-
sudo dnf install gcc→ 提供 C 编译器 -
sudo dnf install gcc-c++→ 提供 C++ 编译器(不是g++包,装这个会提示No package g++ available) - 漏装
gcc-c++后直接跑g++ main.cpp,会报错:bash: g++: command not found - 如果还缺标准库头文件(如
#include <vector></vector>报错),补装:sudo dnf install libstdc++-devel
需要旧版 GCC(比如 GCC 4.9 或 7.x)怎么办
Fedora 自带的 GCC 版本通常较新(F40 默认 GCC 14),但某些项目(如老版本 CUDA、MATLAB MEX、或遗留 Makefile 指定 -std=gnu++98)可能不兼容。这时不能卸载系统 GCC,得共存使用。
- 推荐用 Software Collections(SCL):例如
devtoolset-11提供 GCC 11,gcc-toolset-12提供 GCC 12 - 启用方式:
scl enable gcc-toolset-12 bash,新开 shell 后gcc --version就变成 GCC 12 - 注意:
scl命令只对当前 shell 生效;写进~/.bashrc的source /opt/rh/gcc-toolset-12/enable会污染全局环境,慎用 - 不要用
update-alternatives—— Fedora 官方不维护该机制,容易破坏 dnf 依赖关系
真正麻烦的从来不是“装不上”,而是装完发现 g++ 找不到、std::string 报错、或者项目指定的 GCC 版本和系统不匹配。看清包名、分清 gcc 和 gcc-c++、别跳过 libstdc++-devel,基本就绕开 90% 的坑。











