分类：电脑/网络-程序设计-C/C++
问题：一个源程序（.c）变成可执行(.exe)文件要经过几个步骤?详细? 
“目标”和最终程序有什么区别？“连接”是什么意思？编译过程中会生成汇编代码吗？？？？？？？？？？？？？？？？？？？？？？？？？？源代码…＋头文件……………目标代码…库、引导代码…\…………预处理器…编译器…………………连接器………可执行文件.c…………….cpp…………………….o……………………/？？？？？？？？？？？？？？？？？？？？？？？？？
回答：以GCC编译器为例，可以分为四步。
第一步是预处理，包括语法检查等工作。
gcc -P abc.c
第二步由源程序生产汇编语言代码。
gcc -S abc.c 
会生成abc.s文件，这个文件里就是汇编代码。
第三步编译器生成目标代码，一个源文件生成一个目标代码。
gcc -c abc.c
会生成abc.o
第四步连接器从目标代码生成可执行文件。
gcc abc.o

目标代码包括机器码和符号表（函数及变量名）。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号（函数及变量名），将几个目标代码合成可执行文件。