Linux c程序的编译&链接
Linux下每一步生成文件的后缀
源代码 预编译 编译 汇编 链接
.c .i .s .o a.out
1.预编译:gcc -E .c -o .i
处理预编译指令,删除注释
2.编译:gcc -S .i
词法、语法、解析,代码优化生成符号
3.汇编:gcc -c .s
可重定位的二进制目标文件
1.将汇编指令翻译成二进制
2.生成符号表
3.生成各个段
Linux中文件存储时ELF格式的 windows是EXE格式
4.链接:
1.合并各个段,调整段大小以及段的起始位置
2.合并符号表,解析符号
3.符号重定位
5.中间文件和可执行文件ELF布局比较