由于 Linux 操作系统的自由、开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS、Ubuntu、Debian 等。这些 Linux 发行版中,大多数都默认装有 GCC 编译器。

如果读者不清楚当前使用的 Linux 发行版是否已经装有 GCC 编译器,或者忘记了已安装 GCC 的版本号,可以打开命令行窗口(Terminal)并执行如下指令:
[root@network ~]# gcc --version
gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
Copyright © 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

可以看到,本系统(为ubuntu1~22.04)中已经安装有 11.3.0 版本的 GCC 编译器。反之,如果该命令的执行结果为:
[root@network ~]# gcc -version
bash: /usr/bin/gcc: No such file or directory

则表明当前系统中尚未安装 GCC 编译器。

快速安装GCC编译器

要知道,每个 Linux 发行版都有自己的软件包管理工具,比如 CentOS 系统的 yum 包管理器、Ubuntu 系统的 apt 包管理器等等,并且大多数 Linux 发行版都提供有 GCC 编译器的二进制软件包。因此,我们可以直接“傻瓜式”地安装 GCC 编译器(以 apt为例):
sudo apt-get install gcc
sudo apt-get install gcc-c++

通过执行这 2 条指令,就可以在Ubuntu系统中利用 gcc 命令来执行 C 语言程序,利用 g++ 命令来执行 C++ 程序。
注意,读者切勿认为 gcc 只能用来编译 C 语言程序,g++ 只能用于编译 C++ 程序,这是不对的。有关 gcc 和 g++ 命令,我们会在后续章节给大家做详细讲解。

需要注意的是,采用此方式安装的 GCC 编译器,版本可能低可能高。以我当前使用的 ubuntu1~22.04 系统为例,通过执行以上 2 条指令,其安装的是 GCC 版本为11.3.0 ,而笔者想回退 GCC 编译器至9.4.0 版本。

总的来说,如果读者对 GCC 编译器的版本没有要求,则推荐使用此安装方式;反之,如果读者需要安装指定版本的 GCC 编译器,则需要使用接下来介绍的安装方法。

手动安装GCC编译器

注意,此方式需要耗费的时间较长(几个小时),但支持安装指定版本的 GCC 编译器,并适用于大多数 Linux 发行版(不同之处会有额外提示);同时,如果读者想对已安装的 GCC 编译器进行版本升级,也可以使用此方式。

和使用apt 自动安装 GCC 编译器不同,手动安装 GCC 编译器需要提前到 GCC 官网下载指定版本的 GCC 源码安装包,读者可直接点击GCC源码包进行下载。值得一提的是,每个版本中都包含 2 种格式的压缩包,分别为 tar.gz 和 tar.xz,只是压缩格式不同,本节以 tar.gz 压缩包教大家安装 GCC 编译器。

这里以在 ubuntu系统上安装 9.4.0版本的 GCC 编译器为例,下载的是 gcc-9.4.0.tar.gz源码压缩包,整个安装过程如下:

  1. 以源码的方式安装 GCC 编译器,即手动编译 GCC 编译器的源码,需要当前系统中存在一个可用的编译器,我们可以用旧版本的 GCC 编译器来编译安装新版本的 GCC 编译器。

如果读者所用的操作系统已安装有旧版本的 GCC 编译器,则无需另行安装;反之,读者需要先运行如下命令,安装一个旧版本的 GCC 编译器:
apt-get install -y glibc-static libstdc+±static
apt-get install -y gcc gcc-c++

再次强调,不同 Linux 发行版的软件管理器也有所不同,比如 yum 仅适用于 CentOS、RedHat、Fedora 发行版;而 Ubuntu 系统需使用 apt 完成安装。

其中,第一行指令用于安装编译 C 和 C++ 代码所需的静态链接库;第二行指令用于安装编译 C 和 C++ 代码的 gcc 和 g++ 指令。

  1. 找到下载好的gcc-9.4.0.tar.gz 安装包,将其解压至 /usr/local/ 目录下,解压命令为:
    [root@network local]#sudo tar -zxvf gcc-9.4.0.tar.gz

由此,在 usr/local/ 目录下,就生成了一个新的名为 gcc-9.4.0 的目录(也就是文件夹)。

  1. 紧接着执行如下指令,下载安装 GCC 所需要的依赖包(如 gmp、mpfr、mpc 等):
    [root@network local]# cd /usr/local/gcc-9.4.0
    [root@network gcc-9.4.0]# ./contrib/download_prerequisites

注意,一定观察此命令的执行结果,保证其确实是将 gmp、mpfr、mpc 等依赖包成功下载下来,才能继续执行下面的安装步骤。

  1. 完成以上准备工作之后,就正式进入安装 GCC 编译器的环节。首先,我们需要手动创建一个目录,用于存放编译 GCC 源码包生成的文件。执行如下命令:
    [root@network local]# mkdir gcc-build-9.4.0
    [root@network local]# cd gcc-build-9.4.0

由此,我们在 /usr/local 目录下手动创建了名为 gcc-build-9.4.0 的目录文件,并进入到该目录中。

同时,由于 GCC 编译器支持多种编程语言的编译,而实际情况中我们可能只需要编译 1~2 种编程语言,因此需要对其进行必要的配置。通过执行如下指令,可以配置 GCC 支持编译 C 和 C++ 语言:
[root@network gcc-build-9.4.0]#. ./gcc-9.4.0/configure --enable-checking=release–enable-languages=c,c++ --disable-multilib

有关 configure 后跟的各个参数的含义,读者仅需要了解 --enable-languages 用于设定 GCC 编译器支持编译的编程语言的类别,例如 c、c++、java、objc、obj-c++、go 等。

  1. 在第 4 步创建好 makefile 文件之后,接下来就可以使用 make 命令来编译 GCC 源程序:
    [root@network gcc-build-9.4.0]# make

注意,编译过程是非常耗时的(本机耗时 6 小时完成编译),因此如果读者选用此方式安装 GCC,则在执行 make 命令时一定要安排合适的时间。

  1. 最后,执行如下命令安装 gcc:
    [root@network gcc-build-9.4.0]# make install

  2. 由此就成功安装了9.4.0 版本的 GCC 编译器。需要注意的是,如果此时读者直接执行 gcc --version,则 gcc 版本仍会显示之前安装的版本。操作系统重启之后,GCC 版本就会自行更正过来。

重启操作系统之后,执行 gcc --version 命令,如果看到如下输出结果,则证明安装成功:
[root@network ~]# gcc --version
gcc (GCC) 9.4.0
Copyright © 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

注意,本节是以 Ubuntu 操作系统为例,演示安装 GCC 编译器的具体过程,但实际上,此过程也完全适用于其它 Linux 发行版,只是在个别细节上(比如使用 yum 还是 apt 有或是其他软件包管理器),读者需要灵活调整,将其修改为自己所用操作系统支持的指令。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐