如何在RHEL / CentOS和Fedora中安装GNU GCC(C和C ++编译器)和开发工具

现在,作为系统管理员或工程师,您不能因为知道如何使用CLI和排除GNU / Linux服务器故障而感到满意,但需要进一步进入开发领域,以保持在游戏的顶部。 如果你正在考虑在内核开发或Linux应用程序方面的职业,那么C或C ++是最好的开始。

在RHEL / CentOS和Fedora中安装C C ++编译器和开发工具

另请参阅安装C,C ++和于Debian / Ubuntu /薄荷构建基本工具

在本文中,我们将解释如何在Fedora和CentOS / RHEL系统中安装Gnu C和C ++编译器及其相关的开发工具,如automake,autoconf,flex,bison等。

什么是编译器?

简单来说,编译器是一种软件程序,它将以源语言编写的语句转换为机器CPU可以理解和执行的目标语言。

在Fedora和衍生工具(实际上,这是对整个Linux发行版的生态系统也是如此),最知名的CC ++编译器gccg ++,分别包括发达国家和由自由软件基金会积极支持为一体的一部分GNU项目。

安装GCC(C ++编译器和开发工具

如果海湾合作委员会和/或g ++和它的相关的开发工具并不是默认安装在你的系统,你可以按照以下方法从仓库安装最新版本:

# yum group install 'Development Tools'		[on CentOS/RHEL 7/6]
# dnf group install 'Development Tools'		[on Fedora 22+ Versions]

在我们深入编写CC ++代码,有提高,我们要告诉你你的开发工具集的另一种工具。

在Linux中加速C和C ++编译

当你作为开发过程的一部分时,在对源代码进行更改后必须重新编译多次,所以有一个编译器缓存可以加快未来重新编译。

在Linux中,有一个名为ccache的一个工具,它通过缓存以前的汇编和当同一编译再次执行检测加快重新编译。 除了CC ++,它也支持的Objective-CObjective-C ++。

CCACHE只有一些限制:当重新编译一个文件是唯一有用的。 对于其他类型的编译,该进程将结束运行实际的编译器。 如果不支持编译器标志,同样的事情发生。 明亮的一面是,在任何情况下,它不会干扰实际的编译,不会抛出一个错误 - 只是落回到实际的编译器。

让我们来安装这个工具:

# yum install ccache 

CCache - 在Linux中加速C和C ++编译

并看看它如何工作与一个例子。

用简单的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; 
} 

要编译上面的代码到当前工作目录中名为面积可执行使用带有G ++ -o开关:

# 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

在Linux中编译C ++代码

让你认为的ccache是没有用的,不要让这个简单的例子。 你会知道什么是伟大的工具的ccache重新编译了大量的源代码文件时。 同样的原则也适用于C程序。

概要

在这篇文章中,我们介绍了如何安装和使用GNU编译器CC ++在基于Fedora的分布。

此外,我们展示了如何使用编译器缓存来加速同一代码的重新编译。 虽然你可以参考在线手册页gccg ++进一步的选项和示例,我们期待您的来信,如果您有任何问题或意见。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏