`
kmplayer
  • 浏览: 497856 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第五章 对链接的思考

 
阅读更多
1,动态链接:可执行文件只包含了文件名,让载入器运行时寻找程序所需要的函数库.
程序在运行时寻找它们,而不是把这些函数的二进制码作为自身可执行文件的一部分.
静态链接:函数库的一份拷贝是可执行文件的物理组成部分.

2,动态链接提高性能:
(1)尽管单个可执行文件的启动速度稍受影响,但是动态链接可执行文件比功能相同的静态文件小,可以节省磁盘空间和虚拟内存.
(2)所有动态链接到同一个函数库的可执行文件在运行时共享这个函数库的同一份拷贝.
如果是静态链接,每个文件都拥有函数库的一份物理拷贝,显然极为浪费.
(3)动态链接库的版本升级更容易.
注:动态链接是一种"just-in-time"链接,意味着程序运行时必须能够找到它们所需要的函数库.

3,动态库文件的扩展名".so",静态库文件的扩展名".a".
4,观察头文件,确认所使用的函数库.
每个头文件可能代表一个必须链接的库.
一个函数库包括多个函数,这些函数的声明可能散布于多个头文件中.

5,静态链接和动态链接在链接语义上存在重大区别:
(1)动态链接中,所有的库符号进入输出文件的虚拟地址空间中,所有的符号对于链接在一起的所有文件都是可见的.
(2)对于静态链接库,只是载入载入器当时所知道的未定义符号.
因此:命令行中各个静态链接库出现的顺序是非常重要的.
建议:始终将-l 函数库 放在编译命令行的最右边.

6,警惕:Interpositioning
通过编写与库函数同名的函数来取代该函数库的行为.
注:这样做后,不仅你自己对库函数的调用将被自己版本的函数调用所取代,而且所有调用该库函数的系统调用也将调用你自己的那个函数版本.
分享到:
评论

相关推荐

    过控制工程第一章PPT

    第5章 前馈控制系统 5.1 前馈控制系统的特点 5.2 前馈控制系统的几种主要结构形式 5.2.1 单纯的前馈控制系统 5.2.2 前馈—反馈控制系统 5.2.3 前馈—串级控制系统 5.3 前馈控制规律的实施 5.4 ...

    《人工智能》教材第10章-分布式智能.pptx

    多智能体系统 《人工智能》教材第10章-分布式智能全文共30页,当前为第5页。 10.1 分布式人工智能 第十章 分布式智能 of 31 6 案例1: 滴滴打车 1.多智能体系统 《人工智能》教材第10章-分布式智能全文共30页,当前...

    java 编程入门思考

    第5章 隐藏实施过程 5.1 包:库单元 5.1.1 创建独一无二的包名 5.1.2 自定义工具库 5.1.3 利用导入改变行为 5.1.4 包的停用 5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 ...

    电力电缆实用技术 第2个压缩包 pdf

    第五章 塑料绝缘电力电缆的制造 第一节 塑料绝缘电力电缆制造的工艺特点 第二节 塑料绝缘电力电缆制造的工艺流程简介 第三节 塑料绝缘电力电缆制造的工艺要求 思考与练习 第二篇 电力电缆的施工与维护 第一章 电力...

    电力电缆实用技术 第4个压缩包 pdf

    第五章 塑料绝缘电力电缆的制造 第一节 塑料绝缘电力电缆制造的工艺特点 第二节 塑料绝缘电力电缆制造的工艺流程简介 第三节 塑料绝缘电力电缆制造的工艺要求 思考与练习 第二篇 电力电缆的施工与维护 第一章 电力...

    16位微型计算机原理·接口及其应用

    习题与思考题第五章 存储器与存储系统 5.1 存储器分类 5.2 多层存储结构概念 5.3 主存储器及存储控制 5.4 8086系统的存储器组织 习题与思考题第六章 微型计算机的输入/输出……第七章 中断第八章 可编程接口芯片第九...

    电力电缆实用技术 书籍 PDF 分为4个压缩包!

    第五章 塑料绝缘电力电缆的制造 第一节 塑料绝缘电力电缆制造的工艺特点 第二节 塑料绝缘电力电缆制造的工艺流程简介 第三节 塑料绝缘电力电缆制造的工艺要求 思考与练习 第二篇 电力电缆的施工与维护 第一章 电力...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

    第5章 对象-关系映射基础  5.1 持久化类的属性及访问方法  5.1.1 基本类型属性和包装类型属性  5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第5章 对象-关系映射基础  5.1 持久化类的属性及访问方法  5.1.1 基本类型属性和包装类型属性  5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

    第5章 对象-关系映射基础  5.1 持久化类的属性及访问方法  5.1.1 基本类型属性和包装类型属性  5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

    第5章 对象-关系映射基础  5.1 持久化类的属性及访问方法  5.1.1 基本类型属性和包装类型属性  5.1.2 Hibernate访问持久化类属性的策略  5.1.3 在持久化类的访问方法中加入程序逻辑  5.1.4 设置派生属性  ...

    微机原理及应用

    第5章 8086的总线操作和时序 5.1 概述 5.2 8086的两种模式 5.3 最小模式下的8086时序分析 5.4 最大模式下的8086时序分析 思考题与习题 第6章 半导体存储器 6.1 内存和外存 6.2 半导体存储器 6.3 随机存储器RAM 6.4 ...

    构建高性能Web站点(PDF)-第2部分

    第5章 动态脚本加速 5.1 opcode缓存 5.2 解释器扩展模块 5.3 脚本跟踪与分析 第6章 浏览器缓存 6.1 别忘了浏览器 6.2 缓存协商 6.3 彻底消灭请求 第7章 Web服务器缓存 7.1 URL映射 7.2 缓存响应内容 7.3...

    商务智能复习题答案(自己整理)1

    2、数据不能很好反应潜在的模式 3、数据属性存在冗余 2、雪花模型雪花模型是对星型模型的扩展,每一个点都沿半径向外连接到多个点.雪花模型对星型的维表进一步标准化

    构建高性能Web站点_PDF_45.5M

    第5章 动态脚本加速 5.1 opcode缓存 5.2 解释器扩展模块 5.3 脚本跟踪与分析 第6章 浏览器缓存 6.1 别忘了浏览器 6.2 缓存协商 6.3 彻底消灭请求 第7章 Web服务器缓存 7.1 URL映射 7.2 缓存响应内容 7.3 ...

    构建高性能Web站点(PDF)

    第5章 动态脚本加速 5.1 opcode缓存 5.2 解释器扩展模块 5.3 脚本跟踪与分析 第6章 浏览器缓存 6.1 别忘了浏览器 6.2 缓存协商 6.3 彻底消灭请求 第7章 Web服务器缓存 7.1 URL映射 7.2 缓存响应内容 7.3...

    (第二卷)Microsoft SQL Server 2008技术内幕:T-SQL语言基础

    第5章 表表达式 5.1 派生表 5.2 公用表表达式(CTE) 5.3 视图 5.4 内联表值函数 5.5 APPLY运算符 5.6 总结 5.7 练习 5.8 解决方案 第6章 集合运算 6.1 UNION(并集)集合运算 6.2 INTERSECT...

    SOA实践指南-分布式系统设计的艺术.pdf

    第5章:企业服务总线  5.1 esb职责  5.2 异质的esb  5.3 esb的差异  5.4 esb增值服务  5.5 总结 第6章:服务分类  6.1 基础服务分类  6.2 基本服务  6.3 组合服务  6.4 流程服务  6.5 其他服务...

Global site tag (gtag.js) - Google Analytics