HCRM博客

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

CentOS 下安装和升级 GCC 编译器详解

在 CentOS 系统中,GCC(GNU Compiler Collection)是最常用的编译工具之一,它不仅可以编译 C 和 C++ 代码,还支持其他多种编程语言的编译,本文将详细介绍如何在 CentOS 系统上通过yum 命令安装和升级 GCC 编译器。

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

检查当前 GCC 版本

在安装或升级 GCC 之前,首先需要检查当前系统中是否已经安装了 GCC 以及其版本号,打开终端并输入以下命令:

gcc version
g++ version

如果系统中没有安装 GCC,上述命令会提示找不到命令。

安装或升级 GCC

1. 使用yum 安装基础版本的 GCC

CentOS 默认的软件仓库中提供了基础版本的 GCC(通常是 4.8.5),可以通过以下命令进行安装:

sudo yum install gcc gccc++ kerneldevel make

这条命令会安装 GCC、G++、内核头文件以及make 工具。

2. 升级到更高版本的 GCC

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

由于 CentOS 默认提供的 GCC 版本较低,可能无法满足一些开发需求(例如支持 C++11/14/17 等新特性),因此需要升级到更高版本的 GCC,推荐使用 Software Collections (SCL) 来实现这一目的。

步骤 1:安装 SCL

安装centosreleasescl 包,该包允许访问额外的软件集合:

sudo yum install centosreleasescl

步骤 2:安装 devtoolset

安装所需的devtoolset 版本,以安装devtoolset9 为例:

sudo yum install devtoolset9gcc devtoolset9gccc++ devtoolset9binutils

此命令会安装 GCC 9.3.0 及其相关的 binutils。

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

步骤 3:启用新的 GCC 版本

安装完成后,可以通过以下命令临时启用新的 GCC 版本:

scl enable devtoolset9 bash

要验证是否成功启用新版本的 GCC,可以使用以下命令查看版本号:

gcc version
g++ version

如果希望每次登录时都自动启用新版本的 GCC,可以在~/.bashrc 文件中添加以下行:

source /opt/rh/devtoolset9/enable

保存并关闭文件后,执行以下命令使更改生效:

source ~/.bashrc

3. 安装特定版本的 GCC

如果需要安装特定版本的 GCC(如 GCC 10),可以按照类似的步骤操作:

sudo yum install centosreleasescl
sudo yum install devtoolset10gcc devtoolset10gccc++ devtoolset10binutils
scl enable devtoolset10 bash

同样地,可以将source /opt/rh/devtoolset10/enable 添加到~/.bashrc 文件中以永久生效。

配置永久使用的 GCC 版本

为了确保系统始终使用指定版本的 GCC,可以修改环境变量配置文件(如/etc/profile~/.bash_profile),添加以下内容:

source /opt/rh/devtoolset9/enable

然后重新加载配置文件:

source /etc/profile

或者重新启动系统以使更改生效。

常见问题及解决方法

1、问题:安装过程中出现依赖错误。

解决方法:尝试更新yum 缓存并重新安装:

   sudo yum clean all
   sudo yum makecache
   sudo yum install <packagename>

2、问题:新版本的 GCC 无法找到标准库头文件。

解决方法:确保正确设置了LD_LIBRARY_PATHPKG_CONFIG_PATH 环境变量,或者使用scl enable 命令来自动配置这些变量。

3、问题:旧版本的 GCC 与新版本冲突。

解决方法:使用scl 命令切换不同的 GCC 版本,避免直接替换系统自带的 GCC。

本文详细介绍了在 CentOS 系统上通过yum 命令安装和升级 GCC 编译器的方法,包括检查当前版本、安装基础版本、升级到更高版本以及配置永久使用的 GCC 版本,通过使用 SCL,用户可以轻松管理和切换不同版本的 GCC,满足各种开发需求,希望本文对大家在 CentOS 下使用 GCC 有所帮助。

相关FAQs

Q1:如何卸载通过 SCL 安装的 GCC?

A1:可以通过以下命令卸载特定的devtoolset

sudo yum remove devtoolset9gcc

Q2:如何同时安装多个版本的 GCC 并切换使用?

A2:可以分别安装不同版本的devtoolset,并通过scl enable devtoolsetX 命令切换使用,其中X 为对应的版本号。

Q3:为什么建议使用 SCL 而不是手动编译安装 GCC?

A3:SCL 提供了一个便捷的方式来管理不同版本的软件,避免了手动编译和配置的复杂性,同时减少了与系统自带软件包的潜在冲突。

Q4:如何确保新的 GCC 版本在构建系统时被使用?

A4:除了设置环境变量外,还可以在构建脚本中明确指定使用的 GCC 路径,

CC=/opt/rh/devtoolset9/root/bin/gcc CXX=/opt/rh/devtoolset9/root/bin/g++ ./configure
分享:
扫描分享到社交APP
上一篇
下一篇