在 CentOS 系统中解决 GCC 冲突,通常出现在以下几种场景:
cc / gcc 指向了错误版本下面按常见原因 → 解决方案来说明。
gcc --version
which gcc
rpm -qa | grep gcc
或
yum list installed | grep gcc
ls -l /usr/bin/gcc*
CentOS 7 默认:
gcc 4.8.5
安装高版本 GCC(不影响系统 GCC):
yum install -y centos-release-scl
yum install -y devtoolset-7
启用:
scl enable devtoolset-7 bash
验证:
gcc --version
✅ 优势:
- 不覆盖系统 gcc
- 多版本共存
- 安全、可回退
错误做法:
./configure --prefix=/usr
make && make install
可能导致:
✅ 卸载手动安装的 GCC(如果还能卸载)
rm -rf /usr/local/gcc*
✅ 恢复系统 GCC
yum reinstall gcc gcc-c++
✅ 以后安装到独立目录
./configure --prefix=/opt/gcc-11
查看模块:
dnf module list gcc
dnf module reset gcc
dnf module enable gcc:11
dnf install gcc
alternativesalternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 90
切换版本:
alternatives --config gcc
查看:
gcc --version
即使系统有多个 GCC,也可以直接指定:
export CC=/opt/gcc-11/bin/gcc
export CXX=/opt/gcc-11/bin/g++
或:
./configure CC=gcc-11 CXX=g++-11
GLIBCXX_3.4.xx not found原因:程序用高版本 GCC 编译,但运行环境 GCC 太旧
✅ 解决:
-static-libstdc++
gcc: command not foundyum install gcc gcc-c++
| 场景 | 推荐方案 |
|---|---|
| CentOS 7 需要新 GCC | ✅ devtoolset |
| 多版本共存 | ✅ alternatives |
| 避免破坏系统 | ✅ 不要覆盖 /usr |
| 临时使用 | ✅ scl enable |
如果你愿意,可以告诉我:
我可以给你精确到命令级别的解决方案。