zoukankan      html  css  js  c++  java
  • 链接

    一、关于链接

    1.链接:将各种代码和数据部分收集起来并组合成为一个单一文件的过程。这个文件可被加载或拷贝到存储器并执行。

    2.链接可以执行于编译时,也就是在源代码被翻译成机器代码。也可以执行于加载时,也就是程序被加载器加载到存储器并执行时执行于运行时,有应用程序来执行。

    3.链接是由链接器的程序自动执行的。

    4.链接使分离编译成为可能。
    二、编译器驱动程序

    1.大部分编译系统提供编译驱动程序:代表用户在需要时调用语言预处理器、编译器、汇编器和链接器。

    (1)C预处理器:源程序main.c->ASCII码中间文件main.i
    (2)C编译器:main.i->ASCII码汇编语言文件main.s
    (3)C汇编器:main.s->可重定位目标文件
    2.运行链接器程序ld,将各种.o文件以及必要的系统目标文件组合起来,创建可执行文件
    3.运行可执行文件:./可执行文件名字
    4.外壳调用操作系统中加载器函数,拷贝可执行文件中的代码和数据到存储器,将控制转移到这个程序的开头

    三、静态链接

    1.以一组可重定位目标文件和命令行参数作为输入,生成一个完全链接的可以加载和运行的可执行目标文件作为输出。

    2.输入的可重定位的目标文件由各种不同的代码和数据节组成。

    3.指令在一个节中,初始化的全局变量在另一个节中,而未初始化的变量又在另外一个节中。

    符号解析  

    目标文件定义和引用符号。符号解析的目的是将每个符号引用刚好和一个符号定义联系起来。

    重定位  

    编译器和汇编器生成从地址0开始的饿代码和数据节。链接器通过把每个符号定义与一个存储器位置联系起来,然后修改所有对这些符号的引用,使得它们指向这个存储器位置,从而重定位这些节

  • 相关阅读:
    [原创]Linux下压力测试工具Webbench介绍
    [原创] 测试策略是什么?
    [原创]测试报告模板
    [原创]性能测试基础知识
    [原创]性能测试工具介绍
    [原创]LoadRunner性能测试过程
    [内部资料]LoadRunner培训初级教程
    [原创]什么是性能测试?
    [原创]软件测试CheckList文档
    开源博客秋色园QBlog多用户博客系统安装视频教程
  • 原文地址:https://www.cnblogs.com/lolau/p/10093714.html
Copyright © 2011-2022 走看看