[工学]lec07-Linking.pptVIP

  • 4
  • 0
  • 约1.35万字
  • 约 42页
  • 2018-03-10 发布于浙江
  • 举报
[工学]lec07-Linking

Computer Systems: A Programmer’s Perspective 计算机系统详解 Lecture 7 Linking May 27, 2011 Wu junmin (jmwu@ustc.edu.cn) Topics Static linking Dynamic linking 最简单的程序翻译示例 c程序示例 静态链接 程序通过编译驱动器(Compiler Driver)进行翻译和链接: unix gcc -O2 -g -o p main.c swap.c unix ./p 翻译示例程序 编译驱动器 协调翻译和链接过程中的所有步骤. 通常包含在每个编译系统中(如gcc) 激活c预处理器(cpp), 编译器 (cc1), 汇编器 (as), 和链接程序 (ld). 传递相应的参数到各个阶段 示例: 从main.c和swap.c创建可执行程序p: 链接器做些什么? 符号解析 程序定义和引用符号 (变量和函数): 代码: a(); /* reference to symbol a */ 数据: int *xp=x; /* reference to symbol x */ 符号定义存储在符号表中(由编译器). 每个条目包括名字,大小和目标位置. 链接器把每个符号引用关联到唯一的一个符号定义. 重定位 将各个文件中分离的代码段

文档评论(0)

1亿VIP精品文档

相关文档