如何在 RHEL/CentOS 和 Fedora 中安装 GNU GCC(C 和 C++ 编译器)和开发工具
如今,作为一名系统管理员或工程师,您不能仅满足于了解如何使用 CLI 和排除 GNU/Linux 服务器故障,还需要进一步深入开发领域,以保持领先地位。如果您正在考虑从事 Linux 内核开发或应用程序的职业,那么 C 或 C++ 是最好的起点。
另请阅读:在 Debian/Ubuntu/Mint 中安装 C、C++ 和构建基本工具
本文我们将讲解如何在Fedora和CentOS/RHEL系统中安装Gnu C和C++编译器及其相关的automake、autoconf、flex、bison等开发工具。
什么是编译器?
简单来说,编译器是一种软件程序,它将源语言编写的语句转换为机器 CPU 可以理解和执行的目标语言。
在 Fedora 及其衍生产品中(实际上,整个 Linux 发行版生态系统也是如此),最知名的 C 和 C++ 编译器是 gcc 和 g++ 分别作为 GNU 项目的一部分由自由软件基金会积极开发和支持。
安装GCC(C++编译器和开发工具)
如果默认情况下,您的系统中未安装 gcc 和/或 g++ 及其相关的开发工具,您可以从存储库安装最新的可用版本如下:
yum groupinstall 'Development Tools' [on CentOS/RHEL 7/6]
dnf groupinstall 'Development Tools' [on Fedora 22+ Versions]
在我们深入编写 C 或 C++ 代码之前,我们想向您展示另一个可以增强您的开发工具集的工具。
加速 Linux 中的 C 和 C++ 编译
当您作为开发过程的一部分,在更改源代码后必须重新编译多次时,拥有编译器缓存来加快将来的重新编译速度是非常好的。
在 Linux 中,有一个名为 ccache 的实用程序,它通过缓存以前的编译并检测何时再次进行相同的编译来加速重新编译。除了C和C++之外,它还支持Objective-C和Objective-C++。
Ccache 只有一些限制:它仅在重新编译单个文件时有用。对于其他类型的编译,该过程最终将运行实际的编译器。如果不支持编译器标志,也会发生同样的情况。好的一面是,无论如何它都不会干扰实际的编译,也不会抛出错误——只是回退到实际的编译器。
让我们安装这个工具:
yum install ccache
并通过示例了解它是如何工作的。
使用简单的 C++ 程序测试 GNU C 编译器
作为示例,我们使用一个简单的 C++ 程序,该程序在提供矩形的长度和宽度作为输入后计算矩形的面积。
打开您喜欢的文本编辑器并输入以下代码,然后另存为 area.cpp
:
#include <iostream>
using namespace std;
int main()
{
float length, width, area;
cout << "Enter the length of the rectangle: ";
cin >> length;
cout << "Now enter the width: ";
cin >> width;
area = length*width;
cout <<"The area of the rectangle is: "<< area << endl;
return 0;
}
要将上述代码编译到当前工作目录中的可执行命名区域,请使用 -o 开关和 g++:
g++ area.cpp -o area
如果您想利用ccache,只需在上面的命令前面加上ccache,如下所示:
ccache g++ area.cpp -o area
然后运行二进制文件:
./area
样本输出
Enter the length of the rectangle: 2.5
Now enter the width: 3.7
The area of the rectangle is: 9.25
不要让这个简单的例子让您认为ccache没有用。当你重新编译一个大的源代码文件时,你就会知道ccache是一个多么好的工具。同样的原理也适用于 C 程序。
概括
在本文中,我们解释了如何在基于 Fedora 的发行版中安装和使用用于 C 和 C++ 的 GNU 编译器。
此外,我们还展示了如何使用编译器缓存来加速相同代码的重新编译。虽然您可以参阅 gcc 和 g++ 的在线手册页以获取更多选项和示例,但如果您有任何问题或意见,我们期待您的来信。