如题所述
尽管GCC常被称为C语言的编译器,其实它将C源代码文件转化为可执行文件的过程并非单纯地局限于编译,而是包括四个紧密相连的步骤:预处理、编译、汇编和链接。
首先,当使用gcc命令时,它会启动cpp进行预处理。在这个阶段,预处理器会深入分析源代码,处理文件包含指令(include)和预编译语句,如宏定义(define)等。预处理过后,gcc会调用cc1进行编译,将输入的源文件转化为以.o为扩展名的目标文件。
接下来,汇编步骤涉及将汇编语言文件进行处理。通常,以.S为扩展名的汇编语言源代码文件和以.s为扩展名的汇编语言文件,经过预处理和汇编后,也会生成目标文件,同样是以.o结尾。
当所有目标文件准备就绪后,gcc会调用ld进行至关重要的链接阶段。在这个阶段,所有目标文件被安排在可执行程序的正确位置,同时,程序中引用的库函数也会从相应的库中链接到正确的位置,以确保程序的完整性和正确执行。
扩展资料
GCC(GNU Compiler Collection,GNU编译器集合)是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。GCC是大多数类Unix操作系统(如Linux、BSD、Mac OS X等)的标准的编译器,GCC同样适用于微软的Windows。GCC支持多种计算机体系芯片,如x86、ARM,并已移植到其他多种硬件平台。GCC原名为GNU C编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,并支持处理C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go等。