1步骤
- 预处理:展开宏 头文件 替换条件编译 删除注释空行空白
- 编译:检查语法规范
- 汇编:将汇编指令翻译成机器指令
- 链接:数据段合并。地址回填
2基本常用参数
- I 指定头文件的目录 参数位置都可
- c 只预处理 编译汇编 生成点o文件(2进制文件)
- g 编译时添加调试语句,主要支持gdb调试
- -On 编译优化 。n=0~3
- Wall 显示所有的警告信息
- E 生成预处理文件
- D 向程序中动态注册一个宏定义
- l:指定动态库名
- L:指定动态库路径
3 链接阶段作用
3.1数据段合并
- 地址回填:在得到.o文件时,main函数的地址还是0 其他函数与main函数对应的关系依旧存在,链接时把正在的函数地址回填
3.2数据段合并
- 将内存的data段和bss 段合并大小为4k
- 将rodata段和text段合并大小为4k