✍ dations ◷ 2025-10-22 14:45:08 #电脑术语,计算机编程,计算机程序库

在计算机科学中,库(英语:library)是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立的计算机程序,他们是向其他程序提供服务的代码。

库链接(英语:linking)是指把一个或多个库包括到程序中,有两种链接形式:静态链接和动态链接;相应的,前者链接的库叫做静态库,后者的叫做动态库。

静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。

静态链接的最大缺点是生成的可执行文件太大,需要更多的系统资源,在装入内存时也会消耗更多的时间。

动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过程的一部分。在这些系统上,可执行文件包含一个叫做的表,该表的每一项包含一个库的名字。根据表中记录的名字,装载程序在硬盘上搜索需要的库,然后将其加载到内存中预先不确定的位置,之后根据加载库后确定的库的地址更新可执行程序。可执行程序根据更新后的库信息调用库中的函数或引用库中的数据。这种类型的动态加载称为装载(load-time)时加载,被包括Windows和Linux的大多数系统采用。装载程序在加载应用软件时要完成的最复杂的工作之一就是加载时链接。

其他操作系统可能在运行时解析引用。在这些系统上,可执行程序调用操作系统API将库的名字、函数在库中的编号和函数参数一同传递。操作系统负责立即解析然后代表应用调用合适的函数。这种动态链接叫做运行时链接。因为每个调用都会有系统开销,运行时链接要慢得多,对应用的性能有负面影响。现代操作系统已经很少使用运行时链接。

可以动态链接的库,在Windows上是,在UNIX或Linux上是。库文件是预先编译链接好的可执行文件,存储在计算机的硬盘上。大多数情况下,同一时间多个应用可以使用一个库的同一份拷贝,操作系统不需要加载这个库的多个实例。

动态链接的最大缺点是可执行程序依赖分别存储的库文件才能正确执行。如果库文件被删除、移动、重命名或者被替换为不兼容的版本,那么可执行程序就可能工作不正常。这就是常说的DLL-hell。

相关

  • 吉罗拉莫·弗拉卡斯托罗吉罗拉莫·弗拉卡斯托罗(意大利语:Girolamo Fracastoro,1477年-1553年8月6日),文艺复兴时期欧洲维罗纳的一位医生和作家。他非常著名的作品是题为《梅毒》(1530年)的新拉丁文诗歌,书
  • 东部和南部非洲共同市场东部和南部非洲共同市场(The Common Market for Eastern and Southern Africa,简称COMESA)成立于1994年12月8日,总部设于赞比亚首都路沙卡,使用英语、法语和葡语作为工作语言。前
  • 阿斯利康阿斯特捷利康制药公司(英语:AstraZeneca plc.),是一家由瑞典阿斯特拉公司(Astra AB)和英国捷利康公司(Zeneca Group PLC)于1999年4月6日合并而成的大型英瑞合资制药企业。英国捷利康
  • 亲电性亲电体(英语:Electrophile,意思为电子喜好者)为一化学术语,指在化学反应中对含有可成键电子对的原子或分子(亲核试剂)有亲和作用的原子或分子。因为亲电试剂可以接受电子,所以它们是
  • 砂轮砂轮是一个消耗的各种研磨(砂轮切割)和磨削加工操作中使用的磨料化合物组成的。砂轮一般由粗颗粒的磨料化合物黏合在一起,以形成一个固体的圆形物体,可根据车轮的用途挑选各种型
  • 外用药物外用药物(英语:Topical medication),是医疗上使用于身体表面的药物,例如涂抹于皮肤或黏膜的表面,像是阴道,阴茎,眼睛和耳朵等。外用药物通常要避免接触口部,也不可进食。医疗用的化学
  • 杂合性丢失杂合性(英语:heterozygosity)缺失(英语:Loss of heterozygosity, 常简写为LoH)是指一种使得某一特定基因缺失的基因组变化。所有二倍体细胞,例如人类体细胞,有两套基因组,即分别来自
  • 蜜蜡蜂蜡(英语:Beeswax),是蜜蜂工蜂分泌的蜡。蜜蜂用蜂蜡在蜂巢里建分隔的房间,用来育幼或储存花粉。工蜂拥有四对蜡腺,位于腹部第4至7节。蜂蜡即蜡腺的分泌物。刚羽化成的最年轻的工
  • 壹岐群岛壹岐岛是一个位于日本九州北方玄界滩的岛,南北17千米、东西14千米。壹岐岛除了本岛以外,还有21个附属岛屿:当中5个岛有人居住、其余16个岛是无人岛。壹岐岛的位置刚好在九州和
  • 斯坦尼斯劳斯县斯坦尼斯劳斯县(Stanislaus County)是美国加利福尼亚州的一个县,县治莫德斯托。根据美国人口调查局2000年统计,共有人口446,997,其中白人占69.33%、亚裔美国人占4.22%、非裔美国