✍ dations ◷ 2025-06-08 12:22:49 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • 宪法党宪法党是一个美国政党,旧名美国纳税人党,创建于1991年。其立党理念为“《美国宪法》在现今的人类关系中仍未过时” 。该党的宣言基于对《美国宪法》的原始主义解释,并根据《独
  • 侵权行为侵权行为(欧陆法系英文:delict,普通法英文:tort),是指人侵害他人权利或利益的行为。虽然有很多行为同时属于侵权行为及犯罪,但他们是截然不同的范畴。犯罪可理解为违反对整个社会的
  • Nasub2/subSsub2/subOsub8/sub过硫酸钠是一种无机化合物,化学式为Na2S2O8。它是过二硫酸的钠盐,是一种强氧化剂。它几乎不潮解,可以长时间储存。过硫酸钠可以通过硫酸氢钠的电解氧化制得:氧化在铂阳极发生。
  • 暖流洋流亦称海流,是具有相对稳定流速和流向的大规模海水运动。惟有在陆地沿岸,会因潮汐、地形及河水的注入等影响其变化。赤道流、大洋流、极地流及沿岸流等。信风带作用下的信风
  • 国际音标扩展国际音标扩展(英语:Extensions to the International Phonetic Alphabet,缩写:ExtIPA)设计用于描述问题发音。然而,部分符号(尤其是变音符号)偶尔用于描述正常发音的细节。用于问题
  • 格伦·克洛斯格伦·克洛斯(英语:Glenn Close,1947年3月19日-),美国著名电影、电视剧以及舞台剧女演员。以扮演蛇蝎美人式的角色而闻名,如《危险关系》(1988年)中的梅黛侯爵夫人以及《致命的诱惑》
  • 罗马林达大学罗马琳达大学(英语:Loma Linda University)是基督复临安息日会创办的一所大学,位于美国加州罗马琳达。成立于1905年。罗马林达本来是约翰·伯登和艾伦·G·怀特建立于1905年的一
  • 西雅图超音速西雅图超音速(英语:Seattle SuperSonics),是一支前美国NBA篮球队。其主场位于华盛顿州西雅图。2008年球季完结后,班主班里德迁移并改名为俄克拉何马城雷霆,令西雅图从此失去了一支
  • 莱阳市莱阳市是一个位于中国山东省东部烟台市的县级市。总面积1731.54平方千米。2010年底,全市总人口87.86万人,其中非农业人口15.19万人。莱阳市辖4个街道、14个镇:城厢街道、古柳街
  • 阳寿小片阳寿小片(根据《中国语言地图集》、《汉语官话方言研究》)是冀鲁官话沧惠片的一个分支,分布在山东省北部。该小片北邻冀鲁官话沧惠片黄乐小片,西与东北为章利片,东南为胶辽官话。