如何在RHEL 7.4上安装GCC 4.9.2

13

我正在尝试在Linux上安装gcc和g++ 4.9.2。 我对Linux不太熟悉,看到了一些安装指南,但每次都遇到其他问题。 我的机器上现在没有任何gcc。 我的Linux版本是: Red Hat Enterprise Linux Server release 7.4 (Maipo) 能否有人帮助我提供从头到尾如何正确执行此操作的说明? 非常感谢。

4个回答

21
yum install centos-release-scl-rh
yum install devtoolset-3-gcc devtoolset-3-gcc-c++
update-alternatives --install /usr/bin/gcc-4.9 gcc-4.9 /opt/rh/devtoolset-3/root/usr/bin/gcc 10
update-alternatives --install /usr/bin/g++-4.9 g++-4.9 /opt/rh/devtoolset-3/root/usr/bin/g++ 10

5
似乎需要在安装后在Bash中启用Devtoolset-3。请使用以下命令:source scl_source enable devtoolset-3 - hakunami
2
@hakunami: $ scl enable devtoolset-3 bash https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/ - Knud Larsen
请注意:devtoolset-3已于2016年10月停止支持。如果您需要更新版本的GCC,请在软件集合网站上检查最新的sevtoolset版本:https://www.softwarecollections.org/en/scls/user/rhscl/?search=devtoolset&policy=&repo=&order_by=-create_date&per_page=10 - shuuji3

20

安装系统编译器gcc、g++的命令是# yum install gcc-c++,提供版本4.8.5:/usr/bin/{gcc, g++}

其他选项:1. gcc53-c++-5.3.0-1.el6.x86_64.rpm → https://drive.google.com/file/d/0B7S255p3kFXNRm9FVnZYUnhyZzg/view?usp=sharing&resourcekey=0-1N6zQa6Sbl_WycG1O9I7JA :下载并安装:# cd Downloads/ && yum install ./gcc53-c++-5.3.0-1.el6.x86_64.rpm ..... 提供/usr/bin/{gcc53, g++53}

  1. devtoolset's:https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/# yum-config-manager --enable rhel-server-rhscl-7-rpms

安装gcc、g++版本4.9.2:# yum install devtoolset-3-gcc-c++

注意:您可以同时安装多个gcc/g++版本(系统编译器是必须的)。


  1. gcc49-c++-4.9.3-1.el6.x86_64.rpm https://drive.google.com/file/d/1Pwq1ua80dGM72i7rpDNAIIdfcR1WK-hG/view?usp=sharing → 提供 /usr/bin/{gcc49, g++49}
  2. gcc63-c++-6.3.0-1.el7.x86_64.rpm https://drive.google.com/file/d/1t4WrgvpEP-6_NN3qMJhz9MS3CJhHrHKc/view?usp=sharing → 提供 /usr/bin/{gcc63, g++63}
  3. gcc45-c++-4.5.4-1.el7.x86_64.rpm https://drive.google.com/file/d/15aRg-BPhuyaEyZA9Jy-iAyC21_pwN7nD/view?usp=sharing → 提供 /usr/bin/{gcc45, g++45, gfortran45}
  4. gcc42-c++-4.2.4-1.el6.x86_64.rpm https://drive.google.com/file/d/1eYWk6Nd63xeqqAUoJldNWRuwEGO6cAyv/view?usp=sharing → 提供 /usr/bin/{gcc42, g++42}


  1. gcc73-c++-7.3.0-1.el7.x86_64.rpm https://drive.google.com/file/d/1PgwCP5tu8D0EJbJVTqJd7Vg8dJ4l4noi/view?usp=sharing → 提供 /usr/bin/{gcc73, g++73}

  2. gcc48-c++-4.8.5-1.el6.x86_64.rpm https://drive.google.com/file/d/1w6fW6oSflDDYZt_cOpGj3QMEmzUC8Q9L/view?usp=sharing → 提供 /usr/bin/{gcc48, g++48, gfortran48}

  3. gcc84-c++-8.4.0-1.el7.x86_64.rpm https://drive.google.com/file/d/1xgFtsiDi2uiB1B0AcOaSpxVizzET-pJf/view?usp=sharing → 提供 /usr/bin/{gcc84, g++84, gfortran84}


2
谢谢,你的回答非常有帮助,但我还有一个问题。 如果我想安装gcc 6.2,我该如何找到这个特定版本的编译器? 因为你给了我一个安装c++-5.3-1的选项。我在哪里可以找到其他版本来选择? - Hope
@KnudLarsen,您的资源非常棒,但是您能否提供一份逐步说明书,教我们如何编译新的gcc并使用标准CentOS 7安装中的旧库?也许已经有一些关于这种说明的链接存在了吗?这将非常有帮助。 - unibasil
我现在使用的是 Fedora 31,我想要安装 gcc-8。我尝试从 pkgs.org 下载,但卡在了依赖关系上。如果有像你提供的那样自包含的软件包,那将非常感激。 - RMPR
谢谢伙计。我已经使用gcc/g++7.3.x成功构建了项目。但是我想让我的项目在gcc/g++8上构建。你知道哪个版本的CentOS上的gcc/g++8不会出现像Ubuntu上的gcc/g++8.4.x那样的“内部编译器错误”吗?@KnudLarsen - Tung Duong
谢谢!您的第9项软件包 gcc84-c++-8.4.0-1.el7.x86_64.rpm 没问题。我会使用它。 - Tung Duong
显示剩余7条评论

1

对于CentOS,请运行以下命令:

yum install gcc-c++

0

RHEL自带预配置的repo,您可以使用yum包管理器搜索所需的软件包并安装。

要这样做,首先运行(以搜索gcc为例):

$ sudo yum search gcc 

这将向您显示一个匹配名称的可用软件包列表。

============================ Name Exactly Matched: gcc =============================
gcc.x86_64 : Various compilers (C, C++, Objective-C, ...)
gcc.x86_64 : Various compilers (C, C++, Objective-C, ...)
gcc.i686 : Various compilers (C, C++, Objective-C, ...)
=========================== Name & Summary Matched: gcc ============================
gcc-c++.x86_64 : C++ support for GCC
gcc-c++.i686 : C++ support for GCC
gcc-gdb-plugin.x86_64 : GCC plugin for GDB
gcc-gdb-plugin.i686 : GCC plugin for GDB
gcc-gdb-plugin.x86_64 : GCC plugin for GDB
gcc-objc.x86_64 : Objective-C support for GCC
...

通过运行以下命令安装所需的软件包(例如安装gcc-c++

$ sudo yum install gcc-c++

它将安装软件包并要求确认。

Dependencies resolved.
====================================================================================
 Package           Architecture     Version                 Repository         Size
====================================================================================
Installing:
 gcc-c++           x86_64           8.3.1-2.fc29            updates            12 M

Transaction Summary
====================================================================================
Install  1 Package

Total download size: 12 M
Installed size: 29 M
Is this ok [y/N]:

注意:上述步骤将安装可用的最新版本软件包。


安装特定版本的软件包
安装所有开发工具


6
谢谢,我已安装并运行了它,但我想要的是gcc 4.9.2,但在检查时(使用命令:gcc --version),我得到了:gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)同时我尝试以同样的方式安装g++:yum install g++,但这不起作用。如何使用g++? - Hope
首先,通过执行例如 yum search gcc-c++ 的命令来搜索您想要的软件包,您将获得可用软件包的列表,然后安装并提及正确的名称即可。 - Vipin Yadav
1
我进行了搜索,但是没有看到每个编译器的版本。我只能看到名称。 - Hope
6
我终于成功安装了它。 具体步骤如下: sudo yum install centos-release-scl sudo yum install devtoolset-6 scl enable devtoolset-6 bash现在我机器上有gcc 7.2.1。 但是现在我又遇到一个问题。旧的gcc可执行文件被新的覆盖了,现在我无法使用以前的gcc版本。 有解决这个问题的方法吗? - Hope
1
在 RHEL 7 上最好避免覆盖默认的 gcc 编译器,因为使用 GCC < 4.9 编译的其他程序可能会在共享的 gcc/g++ 库版本不匹配时抛出错误。更好的方法是采用下面 @Lars-Bilke 建议的方法。唯一需要注意的是在加载使用 GCC 4.9 库编译的程序之前,要使用 scl enable devtoolset-3 bash 加载 GCC 4.9 环境。 - Samir
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接