CentOS 7下手动编译安装GCC 7.5.X编译器

1、安装依赖环境

bash 复制代码
sudo yum groupinstall "Development Tools"
sudo yum install -y glibc-devel gmp-devel mpfr-devel libmpc-devel \
    bzip2 wget texinfo

2、下载GCC 7.5源码

bash 复制代码
wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz
tar xvf gcc-7.5.0.tar.xz
cd gcc-7.5.0

3、下载依赖项(GCC源)

bash 复制代码
./contrib/download_prerequisites

4、 配置编译环境(推荐新建目录)


bash 复制代码
mkdir build && cd build
../configure \
    --prefix=/usr/local/gcc-7.5 \
    --enable-languages=c,c++ \
    --disable-multilib \
    --with-system-zlib

--prefix:指定安装路径(避免覆盖系统默认GCC)

--enable-languages:选择需要编译的语言

--disable-multilib:禁用多架构支持(如仅需64位)

5、编译安装(耗时较长)

bash 复制代码
sudo make -j$(nproc)        # 使用所有CPU核心加速编译
sudo make install           # 安装到指定目录

6、配置环境变量

bash 复制代码
# 临时生效
export PATH=/usr/local/gcc-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc-7.5/lib64:$LD_LIBRARY_PATH

# 永久生效(写入 ~/.bashrc 或 /etc/profile)
echo 'export PATH=/usr/local/gcc-7.5/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-7.5/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

7、验证安装

bash 复制代码
gcc --version               # 应显示7.5.0
g++ -std=c++14 -dM -E -x c++ /dev/null | grep -F __cplusplus
# 输出应为:201402L(C++14支持)

可选操作:创建符号链接(软连接)

bash 复制代码
sudo ln -sf /usr/local/gcc-7.5/bin/g++ /usr/local/bin/g++7
sudo ln -sf /usr/local/gcc-7.5/bin/gcc /usr/local/bin/gcc7

常见问题解决

1、编译失败

确保所有依赖已安装

清理后重试:make distclean

2、动态库未找到

运行 sudo ldconfig

兼容性问题

通过绝对路径使用新GCC(如 /usr/local/gcc-7.5/bin/g++)

替代方案:使用SCL(更简单)

如果允许使用第三方仓库,可通过 Developer Toolset 快速安装:

bash 复制代码
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash

优先考虑SCL方案,手动编译适用于需要完全控制编译选项的场景,及无法使用SCL的情况。

相关推荐
钟智强6 小时前
React2Shell:CVE-2025-66478 Next.js 远程执行漏洞深度分析与代码剖析
开发语言·javascript·ecmascript
数研小生6 小时前
Python自然语言处理:NLTK与Gensim库
开发语言·python·自然语言处理
ZFB00016 小时前
【麒麟桌面系统】V10-SP1 2503 系统知识——救援模式显示异常
linux·kylin
落笔画忧愁e6 小时前
腾讯云轻量服务器 + OpenClaw 部署全攻略:从购买到飞书接入
服务器·飞书·腾讯云
第七序章6 小时前
【Linux学习笔记】初识Linux —— 理解gcc编译器
linux·运维·服务器·开发语言·人工智能·笔记·学习
AI科技星6 小时前
从ZUFT光速螺旋运动求导推出自然常数e
服务器·人工智能·线性代数·算法·矩阵
迎仔6 小时前
A-总览:GPU驱动运维系列总览
linux·运维
John_ToDebug6 小时前
Chromium回调机制的隐秘角落:当const &参数遇见base::BindOnce
c++·chrome·性能优化
tiantangzhixia6 小时前
Master PDF Linux 平台的 5.9.35 版本安装与自用
linux·pdf·master pdf
消失的旧时光-19436 小时前
C++ 拷贝构造、拷贝赋值、移动构造、移动赋值 —— 四大对象语义完全梳理
开发语言·c++