在Linux操作系统下,一份普通的c|c++ 代码需要执行一般会经过以下几个步骤(以c为例);


预编译:删除注释,处理预处理指令,头文件等(带“#”的部分),然后生成后缀为 ".i"的文件

编译:语法分析,语义分析,汇总符号,代码优化,生成后缀名为".s"的文件;

汇编:将汇编指令翻译为二进制,生成符号表,生成各种段。然后生成可重定位的二进制目标文件(".o"/".obj");

链接:合并各个section,调整段大小以及起始位置,合并符号表,符号解析,符号重定位,然后生成可执行文件(".out"这里没有给后缀名,windows下为".exe");


本次内容的介绍比较粗糙,没有具体分析生成的各个文件的部分,还需要在后续补充。