1. 引言
什么是 GCC?
GCC(GNU Compiler Collection)是一个开源编译器,能够编译多种编程语言,包括 C 和 C++。它被广泛用作许多 Linux 发行版的標準编译器。
GCC 的主要特性:
- 支持多种语言,如 C、C++、Fortran 和 Java。
- 开源且免费,任何人都可以使用。
- 实现快速且高度可靠的编译。
在 Ubuntu 上使用 GCC 的原因?
- 作为标准包提供 GCC 包含在 Ubuntu 的官方仓库中,便于安装。
- 丰富的文档和社区支持 拥有庞大的全球用户群,故障排除和自定义资源丰富。
- 免费使用 您可以零成本构建强大的开发环境。
- 易于自定义 可以管理多个 GCC 版本,为每个项目配置最佳环境。
总结
本文介绍了 GCC 的基础知识以及在 Ubuntu 上使用它的优势。GCC 是一个强大的、多语言编译器,免费可用,在 Ubuntu 上的安装特别简单。

2. 准备工作
更新系统并检查依赖项
首先,将 Ubuntu 的软件包信息更新到最新版本。这有助于防止安装过程中的错误。
1. 更新您的系统
sudo apt update
sudo apt upgrade
sudo apt update: 更新软件包列表。sudo apt upgrade: 将已安装的软件包升级到最新版本。
注意:
- 更新过程可能需要几分钟。
- 如果随后提示重启,请重启系统。
检查开发工具
要安装 GCC,需要基本的开发工具和软件包。运行以下命令来安装它们:
sudo apt install build-essential
此命令安装 GCC 和基本的开发工具。
已安装软件包的示例:
- gcc (C 编译器)
- g++ (C++ 编译器)
- make (构建工具)
检查安装状态
使用以下命令验证安装并检查版本:
gcc --version
示例输出:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
如果出现此结果,则 GCC 已正确安装。
准备工作总结
您现在已完成安装 GCC 的必要准备工作。
- 更新并升级了系统。
- 安装了设置环境所需的软件包。
- 确认 GCC 已安装并检查了其版本。
3. 安装 GCC
基本安装程序
在 Ubuntu 上,可以从官方仓库轻松安装 GCC。请按照以下步骤操作:
- 安装 build-essential 包
sudo apt install build-essential
此命令安装 GCC、G++ 和其他基本的开发工具。
- 确认安装进度 如果提示“Continue? (Y/n)”,请输入“Y”并按 Enter。
检查安装
安装完成后,验证 GCC 版本:
gcc --version
示例输出:
gcc (Ubuntu 9.4.0-1ubuntu1) 9.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
如果出现版本信息,则 GCC 已成功安装。
4. GCC 的基本用法
创建并编译简单程序
- 创建示例程序
让我们从创建一个简单的“Hello, World!”程序开始。
nano hello.c
编辑器打开时,输入以下代码:
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
输入代码后,按 Ctrl + X 保存,然后按 Y 确认。
编译程序
接下来,使用 GCC 编译程序。
gcc hello.c -o hello
命令说明:
gcc:编译器命令。hello.c:要编译的源文件。-o hello:指定输出可执行文件的名称。
运行已编译的程序
使用以下命令执行已编译的程序:
./hello
示例输出:
Hello, World!
如果看到此输出,说明程序已成功编译并运行。
处理错误
- 代码错误导致的错误
示例错误信息:
hello.c: In function ‘main’:
hello.c:3:5: error: expected ‘;’ before ‘return’
return 0;
解决方案:
错误信息会显示出问题所在的行号。请检查并纠正代码。
- 未找到编译器
示例错误信息:
gcc: command not found
解决方案:
可能系统未安装 GCC。请使用以下命令重新安装:
sudo apt install build-essential
- 运行时错误
示例错误信息:
bash: ./hello: Permission denied
解决方案:
为文件授予执行权限:
chmod +x hello
./hello
优化选项
GCC 允许对代码进行优化,以获得更好的性能。
示例:指定优化级别
gcc -O2 hello.c -o hello
-O1:基本优化。-O2:更高级的优化。-O3:最高级别的性能优化。
这些选项有助于提升执行速度并减小代码体积。
小结
本节介绍了如何使用 GCC 编写、编译和执行一个基本程序。
关键要点:
- 学会创建并编译示例程序。
- 了解常见错误的处理方法。
- 掌握使用优化选项提升程序性能。
5. 管理多个版本
安装多个版本
Ubuntu 允许同时安装不同版本的 GCC。请按照以下步骤进行设置。
- 检查可用版本
sudo apt search gcc-
此命令会列出仓库中可用的 GCC 版本。
示例输出:
gcc-9 - GNU C compiler
gcc-10 - GNU C compiler
gcc-11 - GNU C compiler
- 安装所需版本
例如,安装 GCC 9 和 GCC 10:
sudo apt install gcc-9 gcc-10
安装完成后,继续配置版本切换。
在版本之间切换
使用 update-alternatives 命令可以轻松切换 GCC 版本。
- 注册已安装的 GCC 版本
运行以下命令,将 GCC 版本注册到 update-alternatives:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100
此配置为 GCC 10 设置了更高的优先级。
- 选择要使用的版本
sudo update-alternatives --config gcc
示例输出:
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-10 100 auto mode
1 /usr/bin/gcc-9 90 manual mode
2 /usr/bin/gcc-10 100 manual mode
Press <enter> to keep the current choice[*], or type selection number:
输入所需版本的编号即可。
为项目指定特定版本
如果希望为特定项目使用不同的 GCC 版本,请相应地调整符号链接。
- 创建符号链接
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
- 验证版本
gcc --version
确认所选版本已生效。
小结
本节介绍了如何安装多个 GCC 版本以及如何使用 update-alternatives 在它们之间切换。
关键要点:
- 安装所需的版本并使用
update-alternatives进行管理。 - 配置符号链接,以在每个项目中使用特定的版本。
6. 故障排除
安装错误及解决方案
错误示例 1:未找到软件包
E: Unable to locate package build-essential
原因:
软件包列表已过期,或仓库设置不正确。
解决方案:
使用以下命令更新仓库信息:
sudo apt update
sudo apt upgrade
sudo apt install build-essential
附加解决方案:
sudo add-apt-repository universe
sudo apt update
这可能会使软件包被找到。
错误示例 2:权限错误
Permission denied
原因:
命令未以管理员权限执行。
解决方案:
使用 sudo 运行安装命令:
sudo apt install build-essential
编译时错误及解决方案
错误示例 1:未找到编译器
gcc: command not found
原因:
未安装 GCC,或 PATH 配置不正确。
解决方案:
检查是否已安装 GCC:
sudo apt install gcc
如果已安装,修复符号链接:
sudo ln -s /usr/bin/gcc-10 /usr/bin/gcc
错误示例 2:库链接错误
undefined reference to 'main'
原因:
缺少 main 函数,或存在链接错误。
解决方案:
确保代码中包含 main 函数。使用正确的选项重新编译:
gcc -o output main.c -lm
运行时错误及解决方案
错误示例 1:没有执行权限
bash: ./program: Permission denied
原因:
可执行文件没有运行权限。
解决方案:
添加执行权限:
chmod +x program
./program
错误示例 2:缺少库文件
error while loading shared libraries: libXXX.so: cannot open shared object file: No such file or directory
原因:
所需的共享库未安装。
解决方案:
确认缺失的库并安装:
sudo apt install libXXX-dev
版本管理错误及解决方案
错误示例:版本切换未生效
gcc --version
如果输出未反映切换后的版本,请重新检查 update-alternatives 设置。
解决方案:
- 检查可用的配置。
sudo update-alternatives --config gcc
- 选择正确的版本。
- 更新符号链接。
sudo ln -sf /usr/bin/gcc-9 /usr/bin/gcc
小结
本节说明了 GCC 安装和使用过程中常见的错误及相应的解决方案。
关键要点:
- 通过更新仓库和修复设置可以解决安装错误。
- 编译时问题通常需要检查代码或链接选项。
- 运行时错误常因缺少权限或库文件导致。
- 版本控制问题可通过符号链接和
update-alternatives进行调整。
7. 常见问题解答
如何安装最新版本的 GCC?
问题:
我想安装最新版本的 GCC,但 Ubuntu 的仓库只提供较旧的版本。我该怎么办?
回答:
添加 PPA 仓库并安装最新版本。
- 添加 PPA:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- 更新软件包:
sudo apt update
- 安装最新的 GCC:
sudo apt install gcc-12
- 检查版本:
gcc --version
如何卸载 GCC?
回答:
运行以下命令:
sudo apt remove gcc
sudo apt autoremove
删除相关的开发工具:
sudo apt remove build-essential
如果在 update-alternatives 中只出现旧版本怎么办?
回答:
手动添加所需的版本:
sudo apt install gcc-12
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120
sudo update-alternatives --config gcc
如何解决依赖错误?
答案:
尝试更新系统:
sudo apt update
sudo apt upgrade
如果仍未解决:
sudo apt --fix-broken install
如何为特定项目使用不同的 GCC 版本?
答案:
- 创建本地符号链接:
ln -s /usr/bin/gcc-9 ./gcc
- 在编译时使用它:
./gcc -o program program.c
如果出现 “command not found” 我该怎么办?
答案:
检查是否已安装 GCC:
dpkg -l | grep gcc
如果未安装,请重新安装:
sudo apt install gcc
如果符号链接损坏,请修复它:
sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
摘要
本节涵盖了与 GCC 使用相关的常见问题和实用解决方案。
关键要点:
- 可以通过 PPA 仓库安装最新版本。
- 卸载和版本管理可通过
update-alternatives处理。 - 提供了实用示例来解决常见错误。

8. 结论与后续步骤
关键点回顾
- GCC 的概述和目的
- GCC 支持多种编程语言,如 C 和 C++。
- Ubuntu 通过官方仓库提供了便捷的 GCC 获取方式。
- 安装和准备步骤
- 更新系统并安装了
build-essential包。 - 检查了版本并排查了依赖问题。
- 基本使用
- 学习了如何创建、编译和运行示例代码。
- 探索了优化和错误处理技术。
- 管理多个版本
- 使用
update-alternatives根据项目切换 GCC 版本。
- 故障排除和常见问题
- 讨论了常见错误及逐步解决方案。
其他资源
- 官方 Ubuntu 文档
- Ubuntu 官方站点 提供有关软件包管理和开发工具的详细指南。
- 官方 GCC 文档
- GCC 手册 提供高级使用说明和配置选项。
- Linux 故障排除资源
- Linux Console 包含各种 Linux 故障排除信息。
- 学习平台和论坛
- Qiita 与 Stack Overflow 提供有用的示例和社区支持。
后续步骤
- 在实际开发中使用 GCC
- 在项目中使用 GCC 构建更高级的程序。
- 使用库扩展功能
- 引入额外的库以增强项目功能。
- 学习新工具和语言
- 掌握相关开发工具和语言,扩展技能。
- 加入开源社区
- 参与论坛或开源项目,获取实践经验并分享知识。
最后思考
本文详细介绍了在 Ubuntu 上安装和使用 GCC 的每一步。通过遵循本文介绍的方法和故障排除实践,任何人都能构建可靠的开发环境。
最后一点提示:
使用 GCC 将您的软件创意变为现实。如果遇到问题,请重新查阅 FAQ 或参考资源,以高效解决。
下一篇文章将探讨 C 和 C++ 的核心语法及高级开发技术。敬请期待更新!