要点记录,仅供以后复习。
1.1 编译过程分解
图2-1描述了编译的整个过程
说明:
1.编译过程由cc1负责、汇编过程由as负责、链接过程由ld负责
预编译生成*.i,会将引用的头文件内容拷贝到本文件中、会进行宏替换、条件判断。
编译生成.s,生成汇编代码
汇编生成.o,生成目标文件以及链接时需要的符号表和重定位表等
链接生成elf文件
2.目标文件:
Linux下的二进制文件包括可执行文件、静态库和动态库等,均采用ELF格式存储,目标文件的格式也不例外,也采用ELF格式存储。