如今,作为一名Linux系统管理,不应该只满足于知道如何使用CLI和排除GNU/Linux服务器故障,还需要更进一步研究开发领域,这样才能让自己有所突破。如果你正在考虑从事Linux内核开发或应用程序的职业,那么C或C++是最好的起点。
在本文中,小编将介绍如何在基于RHEL的发行版中安装GNU C和C++编译器及其相关开发工具,包括automake、autoconf、flex、bison等,一起来看看吧。
什么是编译器?
简单来说,编译器是一种软件程序,它将源语言编写的语句转换为计算机CPU可以理解和执行的目标语言。
在Fedora及其衍生版本中(实际上,整个Linux发行版生态系统也是如此),最著名的C和C++编译器分别是gcc和g++,它们均由自由软件基金会作为GNU项目的一部分开发和积极支持。
安装GCC(C++编译器和开发工具)
如果RHEL系统中未默认安装gcc或g++及其相关的开发工具,可以按如下方式从存储库安装最新可用版本:
yum groupinstall 'Development Tools' 或者 dnf groupinstall 'Development Tools'
另外,在深入编写C或C++代码之前,这里介绍另一个可以增强开发工具集的工具。
Linux系统加速C和C++编译工具
当你作为开发过程的一部分,在对源代码进行更改后必须重新编译几次时,最好有一个编译器缓存来加快将来的重新编译速度。
在Linux系统中,有一个名为ccache的实用程序,它通过缓存以前的编译并检测何时再次进行相同的编译来加快重新编译速度。除了C和C++,它还支持Objective-C和Objective-C++。
Ccache只有几个限制:它仅在重新编译单个文件时有用,对于其它类型的编译,进程最终会运行实际的编译器。如果遇到不支持的编译器标志,也会发生同样的情况。好的一面是,无论如何,它不会干扰实际的编译,也不会抛出错误——只会回退到实际的编译器。
安装ccache工具命令如下:
yum install ccache 或者 dnf 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; }
要将上述代码编译为当前工作目录中名为area的可执行文件,请使用带有-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
不要让这个简单的例子让你感觉ccache没什么用。在重新编译大型源代码文件时,你将会知道ccache是多么有用的工具。当然,同样的原则也适用于C程序。
小结
在上面的内容当中,小编介绍了如何在基于RedHat发行版中安装和使用C和C++的GNU编译器。此外,还介绍了使用编译器缓存来加速相同代码的重新编译的方法。
以上内容仅供参考,希望对大家有所帮助。如果你想了解更多内容,可以参考gcc和g++在线手册页来查看更多选项和示例。