GNU 编译器集合(GCC,GNU Compiler Collection)是开发人员必备工具集,包括各种编程语言的编译器。其中有 C、C++、Objective-C、Fortran、Ada、Go 和 D 等编程语言的编译器和库。许多开源项目,如 GNU 工具和 Linux 内核,都是使用 GCC 进行编译的。
本文将介绍如何在 Ubuntu 中安装和切换多个版本的 GCC 编译器,让我们先来看看 GCC 的重要特点:
- 多语言支持:支持 C、C++、Objective-C、Fortran 、Go 等多种编程语言。
- 开源性质:作为 GNU 项目的一部分,它是免费提供的,并得到社区的持续支持和改进。
- 跨平台兼容性:可在 Linux、Windows 和 macOS 等多种操作系统上使用。
- 强大的优化能力:提供丰富的优化功能,让代码运行更快、占用更少的资源。
深入了解 GCC 的功能和配置对于充分发挥其潜力至关重要。GCC 编译器套件不仅有助于应用程序的开发,在优化和调试代码方面同样可以发挥重要作用。根据需求切换不同的 GCC 版本,可以灵活适配特定项目的开发环境需求。
按照以下步骤,可以在 Ubuntu 系统上建立一个高效且多功能的开发环境。本文旨在为您介绍安装和配置 GCC 编译器的详细教程,从而为开发项目提供强大的工具集。
本文内容适用于 Ubuntu 和基于 Ubuntu 的 Linux 发行版,包括:Ubuntu Flavors、Linux Mint 和 elementary OS 等。
方法 1:通过 Ubuntu 官方仓库安装 GCC 编译器
推荐通过 Ubuntu 官方仓库安装 GCC 编译器,这样可以确保与系统的软件包兼容:
1先对系统进行更新可以确保所有软件包都是最新的,从而最大程度减少安装 GCC 时出现软件包冲突的可能性:
sudo apt update && sudo apt upgrade
2更新系统之后,有两个选项用于安装 GCC:
- 只安装 GCC 软件包
sudo apt install gcc
- 安装
build-essential
软件包,该软件包包含 GCC 及一系列开发工具,如 make、g++ 和dpkg-dev。
sudo apt install build-essential
3(可选)可以使用以下命令安装有关 GNU/Linux 的开发手册:
sudo apt install manpages-dev
4要验证 GCC 编译器是否已成功安装,可以使用以下命令查看 GCC 版本:
gcc --version
方法 2:使用 Ubuntu Toolchain PPA 安装 GCC 编译器
如果在 Ubuntu 官方仓库中找不到需要的 GCC 版本,可以使用 Ubuntu Toolchain PPA 安装最新或特定版本的 GCC 编译器:
1使用以下命令添加托管有多个 GCC 版本的 Ubuntu Toolchain PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa -y
2添加好 PPA 之后,运行以下命令更新软件包列表,以便 apt 获取到 Ubuntu Toolchain PPA 的新软件包:
sudo apt update
3Ubuntu Toolchain PPA 提供了多个版本的 GCC,可以选择安装需要的 GCC 版本。以下是安装这些版本的命令:
- GCC 12
sudo apt install g++-12 gcc-12
- GCC 11
sudo apt install g++-11 gcc-11
- GCC 10
sudo apt install g++-10 gcc-10
- GCC 9
sudo apt install g++-9 gcc-9
以上命令将安装所选版本的 GCC 和 G++ 编译器。
4安装完成后,可以使用以下命令验证 GCC 编译器是否成功安装:
gcc-12 --version #请将命令中的 12 替换为您安装的版本。
在 Ubuntu 中安装、切换多版本 GCC 编译器
作为开发人员或系统管理员,在某些情况下可能需要在 Ubuntu 中安装多版本的 GCC。下面就为您介绍,如何安装多个版本的 GCC 并配置系统以根据需要进行版本切换:
1按上文「方法 2」添加托管有多个 GCC 版本的 Ubuntu Toolchain PPA。
2使用下命令安装多个版本的 GCC 以及它们对应的 G++(C++ 编译器):
sudo apt install gcc-9 g++-9 gcc-10 g++-10 gcc-11 g++-11 g++-12 gcc-12
3在安装好多个版本后,使用 update-alternatives
命令为每个 GCC 版本设置优先级。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 80 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 60 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 40 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9
这些命令将每个 GCC 版本与一个优先级水平关联(GCC 12 为 100,GCC 11 为 80,依此类推)。Ubuntu 系统会默认使用优先级最高的版本,如果有需要,可以随时更改。
4在配置完优先级之后,要验证所期望的版本是否已成为默认 GCC 版本,可以使用以下命令:
gcc --version
5如果需要切换到不同 GCC 版本,可以使用 update-alternatives
命令重新配置默认版本:
sudo update-alternatives --config gcc
上述命令将显示安装的 GCC 版本列表,只需输入对应的版本编号,然后按「回车」键即可将其设置为默认版本。命令会自动创建指向 GCC 和 G ++ 特定版本的符号链接。
good job!