
以GCC编译器为例,可以分为四步。
第一步是预处理,包括语法检查等工作。
gcc -P abc.
c第二步由源程序生产汇编语言代码。
gcc -S abc.c 会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc -c abc.c会生成abc.
o第四步连接器从目标代码生成可执行文件。gcc abc.o目标代码包括机器码和符号表(函数及变量名)。
连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。
编好的代码(源代码)经过编译,链接,生成可执行的文件,然后就可以执行。
即编辑的代码要最重生成可执行的程序(可执行的文件),需要经过编译、链接两个步骤。
编译的作用是对代码进行语法检查,而链接的作用是链接代码中用到的编译器提供的资源。
所以,通常通过编译、链接后形成的只形成一个可执行的文件。