✍ dations ◷ 2025-06-28 22:00:51 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • 肌肉僵直张力亢进(英语:Hypertonia、肌肉压力过高、肌肉张力亢进、肌肉僵直),在文献中、有时等同于反射亢进(Spasticity/hyperreflexia),指的是中枢神经系统周围损伤所引起的亢进、亦即
  • 非洲板块非洲板块是一个较大的板块,几乎包含整个非洲大陆,向西一至延伸到中大西洋海岭。它是1968年勒皮雄提出的六大板块之一,范围基本没有变动。非洲板块的西界是一个离散边界,形成中大
  • 坎伯兰坎伯兰(Cumberland)是英国的一个历史地区,位于英格兰的西北部。在12世纪至1974年之间,其是一个实际存在的行政区划。在1889年至1974年之间,其曾是一个行政区划上的郡。1974年,坎伯
  • 阿敏·马卢夫阿敏·马卢夫(法语:Amin Maalouf,阿拉伯语:أمين معلوف‎,1949年2月25日-),黎巴嫩裔法国人,当代著名法语文学作家。原在黎巴嫩当记者,1975年黎巴嫩内战爆发后迁居巴黎,以法语写
  • 工艺美术博物馆工艺美术博物馆(法语:Musée des Arts et Métiers)是一座附属于法国国立工艺院(CNAM)的博物馆,位于巴黎第三区。博物馆创建于1794年,建筑物本来是一座小修道院。在1990年至2000年
  • 刀刺在背传说刀刺在背传说(又译为匕首传说或背后一刀传说;德语: Dolchstoßlegende 帮助·信息),是第一次世界大战后,在德国流传的传言,具有政治宣传的作用。该传言认为,第一次世界大战德国会战
  • 甲烯土霉素美他环素又称为“甲烯土霉素”,是一种四环素类抗生素。美他环素能与tRNA结合,从而达到抑菌的效果,但长期应用可引起二重感染及肝脏损害。医学导航:病菌细菌(分类)gr+f/gr+a(t)/gr-p(c/gr
  • 公平公正指对于同一事件对于所有的人平等对待。公正包括程序公正和社会公正。程序公正追求规则对于所有人和机构的平等,追求起点的平等。社会公正追求结果的平等,不问人们的起点、
  • 进步主义教育运动进步主义教育(Progressive education或Educational progressivism)是一个开始于19世纪后期的教育运动,它是一种信仰:教育必须依据的原则是,人类是社会性动物,最好的学习是在与他人
  • 云和县云和县位于中国浙江省西南部,丽水市中部。县域东西宽38公里,南北长47公里,总面积984平方公里。至2007年全县共有常住总人口123317人:其中户籍总人口111438人,登记在册的暂住人口2