✍ dations ◷ 2025-11-11 17:06:40 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • KCNH21BYW, 1UJL, 2L0W, 2L1M, 2L4R, 2LE7, 4HP9, 4HQA· inward rectifier potassium channel activity · voltage-gated potassium channel activity · delayed rectifier
  • 医疗设备医疗器械(Medical Device),在台湾称为医疗器材(Medical Device),又作医疗设备或医疗仪器(Medical Equipment),用于医疗工作的诊断(diagnosis)、监护(Monitoring)和治疗(treatment)。医疗器
  • 邑部,为汉字索引中的部首之一,康熙字典214个部首中的第一百六十三个(七划的则为第十七个)。就繁体和简体中文中,邑部归于七划部首。邑部只以右方为部字,俗称“右耳旁”或“右耳刀
  • 西澳洋流西澳洋流(英语:West Australian Current或Western Australian Current),是位于南冰洋及南印度洋表面的寒流,具季节性,于冬季较弱,夏季较强,而且受当地风势影响。西澳寒流位于澳大利
  • 断层断层是一种分开两种进行相对运动的岩体的岩石破裂面。断层通常出现在地壳活动频繁的区域,并与地震、海啸等天灾有关联性。断层通常集体出现;他们大小不等,大的断层可纵贯整个岩
  • 楚科奇-br /堪察加语系楚科奇-堪察加语系,又名罗拉维特兰语系(Luorawetlan),是古西伯利亚语言的其中一种,通行于东北西伯利亚。虽然古西伯利亚语言本身的成员未必有关连,但楚科奇-堪察加语族之内的语言
  • 鄂毕湾鄂毕湾(俄语:О́бская губа́,Gulf of Ob或Ob Bay)位于俄罗斯北部鄂毕河流入北冰洋的海湾,鄂毕河口有数个平坦的岛屿,它们是湿地公约保护的湿地。区内有庞大的天然气和
  • 拉丁美洲独立战争西班牙总督府美洲独立运动1820后拉丁美洲独立战争(西班牙语:Guerras de independencia hispanoamericanas)是18世纪末至19世纪在拉丁美洲发生的一系列西属美洲对西班牙帝国的战
  • 吴兴吴兴为浙江省湖州市的古称,三国孙吴甘露二年(公元266年),吴主孙皓取“吴国兴盛”之意改乌程为吴兴,并设吴兴郡,辖地相当于现在的湖州市全境,钱塘县(今杭州)、阳羡县(今宜兴)。隋代因地
  • 渌口区渌口区是湖南省株洲市的一个市辖区,位于湖南省中部偏东,湘江中游,地形东西窄,南北长。区境北连株洲市天元区、芦淞区和浏阳市,西接湘潭市市区和湘潭县,东邻醴陵市,南界攸县和衡东县