链接脚本学习

编译链接过程:

       预编译:处理宏定义,注释,#include等

       编译:将.c .s文件编译为机器码.o文件

       链接:将.o文件中的各函数(段)按一定规则(链接脚本指定)累积在一起,形成可执行文件

       strip:把可执行程序中的符号信息去掉,节省空间(Debug版和Release版)

       objcopy:可执行程序生成可烧录的镜像bin文件

        

程序段:代码段、数据段、bss段(ZI段)、自定义段

        段是程序的一部分,给段命名为了在链接脚本中用段名来核实位置

        段名有两种:一种先天性,编译器内部定好的,另一种后天性,由程序员自定义

                先天性段名:

                        代码段:(.text),又叫wenb文本段,就是编译器将函数编译生成的东西      

                        数据段:(.data)数据段就是c语言有显示初始化为非0的全局变量

                        bss段:又叫ZI(zero initial)段,就是零初始化段,对应C语言中初始化为0的全局变量

                 后天性段名:

                         段名,段属性和特征都由程决定

链接脚本:本质是一个规则文件,指挥链接器工作,连接器会按照链接脚本中的规则来处理.o文件中的段,将其链接成一个可执行程序。

猜你喜欢

转载自blog.csdn.net/weixin_40405692/article/details/81163327
今日推荐