HCRM博客

如何在CentOS上编译安装GCC编译器?

在CentOS系统上编译GCC源码包是一项复杂但非常有用的任务,尤其对于需要自定义编译器版本或进行特定优化的场景,以下是一个详细的指南,包括准备环境、下载源码、配置编译选项、编译和安装以及设置环境变量等步骤:

一、准备环境

1、更新系统:确保你的CentOS系统是最新的,以避免潜在的兼容性问题。

如何在CentOS上编译安装GCC编译器?-图1
(图片来源网络,侵权删除)
   sudo yum update y

2、安装开发工具和依赖包

安装“Development Tools”组,其中包含了编译器、库和其他必要的开发工具。

     sudo yum groupinstall "Development Tools" y

安装wget和bzip2,用于下载GCC源码包。

     sudo yum install wget bzip2 y

安装GMP、MPFR和MPC库,这些库是GCC编译所必须的。

     sudo yum install gmp gmpdevel mpfr mpfrdevel libmpc libmpcdevel y

二、下载GCC源码包

1、使用wget工具下载GCC源码包:从GNU的官方网站上找到你需要的GCC版本并下载,下载gcc10.2.0版本:

   wget https://ftp.gnu.org/gnu/gcc/gcc10.2.0/gcc10.2.0.tar.gz

2、解压缩文件:将下载的源码包解压到当前目录。

如何在CentOS上编译安装GCC编译器?-图2
(图片来源网络,侵权删除)
   tar xzf gcc10.2.0.tar.gz

三、配置编译选项

1、进入解压后的GCC源码目录

   cd gcc10.2.0/

2、运行download_prerequisites脚本:这个脚本会自动下载并安装GCC编译所需的先决条件(如GMP、MPFR和MPC库)。

   ./contrib/download_prerequisites

3、创建构建目录并进入

   mkdir build
   cd build

4、配置编译选项:根据需要进行定制,但以下是一个基本的配置命令:

   ../configure prefix=/usr/local/gcc10.2.0 enablelanguages=c,c++ disablemultilib

prefix:指定GCC的安装目录。

enablelanguages:指定要编译的语言。

如何在CentOS上编译安装GCC编译器?-图3
(图片来源网络,侵权删除)

disablemultilib:禁用多库支持。

四、编译和安装

1、开始编译:这一步可能会耗费大量时间,具体取决于系统性能,使用j$(nproc)选项可以并行编译,利用多核CPU加速编译过程。

   make j$(nproc)

2、安装GCC

   sudo make install

五、设置环境变量

为了使用新安装的GCC版本,需要设置环境变量,可以通过编辑~/.bashrc文件来设置:

echo 'export PATH=/usr/local/gcc10.2.0/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

六、验证安装

验证GCC是否安装成功,可以使用以下命令检查GCC的版本信息:

gcc version

如果显示的是新安装的GCC版本信息,说明编译和安装成功。

七、常见问题及解答(FAQ)

Q1:如何卸载已安装的GCC版本?

A1:可以通过删除对应的安装目录来卸载GCC,如果你的GCC安装在/usr/local/gcc10.2.0,你可以使用以下命令卸载:

sudo rm rf /usr/local/gcc10.2.0

~/.bashrc文件中删除相关的环境变量设置,并重新加载文件:

sed i '/\/usr\/local\/gcc10.2.0\//d' ~/.bashrc
source ~/.bashrc

Q2:如何在CentOS上同时安装多个版本的GCC?

A2:可以通过指定不同的安装前缀来安装多个版本的GCC,如果你想安装另一个版本的GCC,比如gcc9.3.0,你可以在配置时使用不同的前缀:

../configure prefix=/usr/local/gcc9.3.0 enablelanguages=c,c++ disablemultilib
make j$(nproc)
sudo make install

通过设置环境变量来切换不同版本的GCC,要使用gcc9.3.0,可以在终端中执行:

export PATH=/usr/local/gcc9.3.0/bin:$PATH
分享:
扫描分享到社交APP
上一篇
下一篇