✍ dations ◷ 2025-12-05 00:31:20 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • 特克斯和凯科斯群岛坐标:21°45′N 71°35′W / 21.750°N 71.583°W / 21.750; -71.583特克斯和凯科斯群岛(英语:Turks and Caicos Islands,/ˈtɜːrks/和/ˈkeɪkəs/ / /ˈkeɪkoʊs/ / /ˈke
  • 卡的夫加的夫(英语:Cardiff;威尔士语:Caerdydd)是威尔士的首府和最大城市,也是英国第十六大城市。威尔士国民议会所在地。人口约519,700,面积190平方公里。加的夫在威尔士语中意为塔夫河
  • 法罗群岛克朗法罗群岛克朗为法罗群岛流通货币,由丹麦国家银行发行。法罗群岛克朗不是一种独立的货币,而是丹麦克朗的一个版本,与丹麦克朗等值,因此在ISO 4217中没有自己的代码。1克朗=100欧
  • 德国疫情相关争议2019冠状病毒病德国疫情,介绍在2019-2020年冠状病毒病疫情在德国的情况,若无特殊注明,本条目中所有日期均为2020年。疫情最早于中国湖北省武汉市爆发,1月27日,巴伐利亚确诊了首宗
  • 探索频道探索频道(英语:Discovery Channel)是由探索传播于1985年在美国创立的。探索频道主要播放流行科学、科技、历史、考古及自然纪录片。探索频道在世界主要国家地区均有落地,但探索
  • 1072年
  • 占城稻占城稻是一种出产于中南半岛的高产、早熟、耐旱的稻种。一般认为是在宋朝以前由占城传入中国,故名为占城稻。《唐会要》卷九八《林邑国》记“以二月为岁首,稻岁再熟”说明林邑
  • 北京农学院北京农学院 (Beijing University of Agriculture) 是一所应用型公立大学,位于中国北京市昌平区。其前身是始建于1956年的河北省通县农业学校。北京农学院的历史可以追溯至195
  • 斐迪南·拉萨尔斐迪南·拉萨尔(德语:Ferdinand Lassalle )(1825年4月11日-1864年8月31日)是一位德国犹太人法理学家和社会主义政治活动家。斐迪南·拉萨尔于1863年5月23日,在萨克森王国莱比锡建立
  • 科林学院科林学院(英语:Collin College),又名柯林郡社区学院(Collin County Community College),是位于美国德州科林县的一所社区学院,其总部位于麦金尼的科林高等教育中心(CHEC)。 科林