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

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

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

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

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

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

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

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

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

相关

  • 大西洋大西洋(西班牙语:Océano Atlántico,葡萄牙语:Oceano Atlântico,英语:Atlantic Ocean),是世界第二大洋。原面积8221万7千平方公里,在南冰洋确立后,面积调整为7676万2千平方公里。平
  • 肾小球肾小体(英语:renal corpuscle)位于肾脏,是肾单位中首先进行过滤工作的单位,它包含了由动脉性微血管组成的肾小球,并被囊状的鲍氏囊包围起来。经超滤作用后,来自肾小球血细胞中的液
  • 萨摩亚语萨摩亚语(萨摩亚语:gagana Sāmoa)(英语:Samoan language)是萨摩亚与美属萨摩亚的官方语言之一,也是两地的传统语言。萨摩亚语属于南岛语系。萨摩亚语的使用者约有370,337人,其中将
  • 桶孔覆垫桶孔覆垫(英语:Parenthesome)是担子菌门真菌的细胞中的一种显微结构,其形状就像一对括号,位于桶孔隔膜的两端。桶孔隔膜在菌丝里将细胞分开。桶孔覆垫的功能还未知,其组成部分也并
  • 软骨发育不全症死蠢斗一番的演员 DiseasesDB = 80软骨发育不全症(Achondroplasia)是一种显性遗传病,患者位于第四对染色体上基因“纤维芽细胞生长因子第三号接受体”出现缺陷,引致骨
  • 尼克拉斯·本特纳尼克拉斯·本特纳(丹麦语:Nicklas Bendtner,1988年1月16日-)是一名丹麦的职业足球运动员。现效力于丹超球队哥本哈根。丹麦队方面,他为球队上场超过70次。本特纳出生于丹麦哥本哈
  • 潮汐表潮汐表是用来预报和显示一个地点每天的潮汐涨落时间和高潮与低潮的潮水高度。在中间的时间(高潮和低潮的中间)可以概略的使用12等分规则预测,或是使用港口已经发布的潮汐曲线精
  • 统一资源标志符统一资源标识符(英语:Uniform Resource Identifier,缩写:URI)在电脑术语中是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对网络中(一般指万维网)的资源通过特定的协
  • 大型多人在线角色扮演游戏大型多人在线角色扮演游戏(英语:massively multiplayer online role-playing game,缩写:MMORPG)为电子游戏的一种,是电子角色扮演游戏按电子游戏人数分类分别出来的一种网络游戏。
  • 壹岐群岛壹岐岛是一个位于日本九州北方玄界滩的岛,南北17千米、东西14千米。壹岐岛除了本岛以外,还有21个附属岛屿:当中5个岛有人居住、其余16个岛是无人岛。壹岐岛的位置刚好在九州和