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的情况。

相关推荐
SPC的存折12 分钟前
MySQL 8组复制完全指南
linux·运维·服务器·数据库·mysql
运维行者_13 分钟前
OpManager MSP NetFlow Analyzer集成解决方案,应对多客户端网络流量监控挑战
大数据·运维·服务器·网络·数据库·自动化·运维开发
sszdzq30 分钟前
docker 安装 doris
运维·docker·容器
wjs20241 小时前
JavaScript 语句
开发语言
dashizhi20151 小时前
共享文件禁止拖动本地磁盘、共享文件禁止另存为、禁止打印共享文件、禁止复制共享文件的方法
运维·服务器·网络·安全·电脑
CoderCodingNo2 小时前
【GESP】C++三级真题 luogu-B4499, [GESP202603 三级] 二进制回文串
数据结构·c++·算法
Linux技术芯2 小时前
Refault Distance算法详解
linux
0vvv02 小时前
linux-软件安装
linux
IMPYLH2 小时前
Linux 的 nproc 命令
linux·运维·服务器·bash
cmpxr_2 小时前
【C】局部变量和全局变量及同名情况
c语言·开发语言