编辑器、编译器和链接器

本文解决的问题:
1.编译器,集成开发环境的区别
2.源文件,目标文件,库文件是什么
3.什么是编辑器、编译器和链接器
有关库文件,请参考我的博客 lib,dll区别 及 VS中如何添加lib,dll

1.集成开发环境: “集成”二字就是字面意思,集成开发环境整合了编辑器、编译器、链接器,调试,部署,乃至代码版本管理等功能于一体,为了方便程序员编写,编译,调试程序和部署程序。

以下内容转载于 编辑器、编译器和链接器
2.编辑器、编译器和链接器

编辑器、编译器和链接器是使用C语言进行开发所需要的三个最基本的工具,而且也是最小的工具集,缺一不可。

从图所示的一个可以运行的程序的生成过程,就可以看出编辑器、编译器和链接器在这条可执行程序”生成链”上所处的位置了。从键盘一句一句敲出代码到一个可以在操作系统上运行的程序,必须经过这三个工具的处理才可以。接下来逐个看一看这三个程序的作用。

编辑器、编译器和链接器_第1张图片

1.编辑器

编辑器的作用就是将我们在键盘上的敲击转换成写有代码的文件,这个文件被称为程序源文件,或者直接叫做源文件。

这个编辑器在形式上很像是一个记事本程序,可以在上面添加、删除、插入字母或者文字,并且可以将这些字母和文字保存到一个文件中。其实,记事本是可以作为C语言编辑器的,我们在记事本上编辑的字母和文字就是将要学习的C语言代码。这些代码保存到一个文件中,供下次编辑或者直接交给编译器去处理,这个文件就是源文件。

不过,记事本可以算是最简单和最不专业的C语言编辑器了!一般而言,专业的C语言编辑器都有其他方便C语言代码编辑的功能。例如,最基本的语法高亮功能,所谓语法高亮,就是程序中不同用途的字母或者文字会以不同的颜色显示出来,让你一看就知道正在写的代码是做什么用的。越高级、越专业的C语言编辑器,越能最大程度地方便你写C语言代码。

其实,只要能将键盘的输入转换成源文件的就可以称为编辑器。一般的编辑器也是可以编写C语言代码的,只不过,比起专业的C语言编辑器会显得难用和不舒服一点。

2.编译器

编译器的作用是将保存着我们所写代码的源文件,转换成一种称为目标文件的二进制文件。源文件是我们能看懂的,是给我们用的。而二进制文件是计算机能看懂的文件,是给计算机用的。计算机根据二进制文件中的内容决定该做什么事情,不该做什么事情。

在这个转换过程中,编译器先对源文件中的内容进行扫描,根据C语言的语法要求,逐个检查源文件中出现的每一个字母或者文字。

如果这些文字符合C语言的语法要求,那么它就根据这些字母和文字的含义将其转换成计算机可以识别的二进制代码,并将其按照一定的格式保存在二进制文件中。如果某些地方的字母或者文字不符合C语言的语法要求,那么编译器将报告所有不符合的地方,不再生成二进制文件,只有改正所有不符合语法要求的地方,让编译器重新对改正的源文件进行转化,才可以生成二进制文件。

编译器对源文件的转换过程在计算机中有个专业的名字,叫”编译”。编译器也因此得名,表示编译的工具。

3.链接器

一般所写的程序最终是要运行在某个操作系统上的。因此,即使是一个很简单的程序也需要操作系统来处理很多事情,才能使程序正常运行。操作系统往往会提供一些被称为开发库的二进制文件,编译器产生的目标二进制文件只有和这些库二进制文件结合才能生成一个可执行程序,才能使我们写的程序正常地运行于某个操作系统之上。

另外,有的时候我们可能会开发一些专业的或者功能很复杂的软件,这类软件要从头做,往往很麻烦。这个时候,就得看看其他公司或者业界有没有提供此类功能实现,可以买过来使用。往往买过来的也是一堆库二进制文件,只有把这些库二进制文件和编译器产生的目标二进制文件结合起来才能产生需要的可执行程序。

链接器所做的工作就是将所有的二进制文件链接起来融合成一个可执行程序,不管这些二进制文件是目标二进制文件还是库二进制文件。链接器将二进制文件融合的这一过程,在计算机中也有一个专业的名字–”链接”,链接器也因此得名,表示链接的工具

你可能感兴趣的:(C++学习)