程序从源码到可执行文件
编辑器、编译器和链接器
编辑器:是用于编写源程序的软件,通过编辑器来编写源程序文件。源文件有特定的格式,由文件的后缀名来区分,后缀取决于使用的编程语言,如C语言编写的是C程序文件,其源文件以.c为后缀;C++语言编写的程序源文件则以.cpp为后缀。更多时候,编辑器是面向程序员的,程序编辑器和普通的文本编辑器的不同之处在于程序编辑器的设计上对程序员友好,能够自动的帮助程序员实现一些功能,如:关键字的高亮显示,关键字的自动填充等。
编译器:编辑器所生成的是源文件,源文件是面向程序员人的,而非机器;对于电脑CPU而言,是无法识别源文件的内容的,机器语言是二进制的,即CPU只识别010101的二进制文件,因此需要一种程序能够将供人识别的源文件转换为机器可以识别的二进制文件,这一转换过程即是编译,而执行这一过程的程序即是编译器。通过编译器编译生成的是二进制文件,其后缀为.obj或.o等形式,此文件可以被cpu读取识别,但不能被完整执行。
链接器:在编写程序的时候,通常会包含很多库文件以及很多函数声明,子函数一类的东西,这些东西的本质都是在简化编写程序的复杂性,通常将经常使用的函数封装成库函数供程序调用,而将复杂的功能进行拆分,分文件实现子模块,然后供主程序调用则有利于源程序的可读性,但对于机器CPU而言,一般,对人友好的东西注定都对机器不友好,程序员可以在编辑器里很容易的实现从函数使用到函数定义的跳转,但机器在执行程序时可不会跳着文件的执行,因此需要将程序中的函数调用和库文件中的调用的函数源程