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

相关推荐
Rhys..12 分钟前
敏捷(Agile)流程
运维·敏捷流程
大飞pkz12 分钟前
【设计模式】组合模式
开发语言·设计模式·c#·组合模式
freedom_1024_13 分钟前
【C++】深入理解const 成员函数
c++
Dream achiever35 分钟前
6.WPF控件---Label
开发语言·wpf
李小枫44 分钟前
在linux上安装kafka,并使用kafka-clients实现消费者
linux·kafka·linq
煤球王子1 小时前
浅学内存分配与释放(二)
linux
dessler1 小时前
Hadoop HDFS-认证(Kerberos) 部署与配置
linux·运维·hdfs
360智汇云1 小时前
k8s共享存储fuse-client三种运行方案对比
java·linux·开发语言
云游1 小时前
IP地址管理:docker方式部署phpIPAMv1.7.3
运维·docker·ip·ipv4·ipv6