✍ dations ◷ 2024-12-22 21:49:16 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • 卵菌见内文卵菌门(学名:Oomycota)或卵菌纲(学名:Oomycetes),俗称水霉 (water mold),是一种与真菌很相似的真核微生物,不具叶绿素,不进行光合作用,需将养分在体外分解后,再进行吸收。但根据亲
  • 谚语谚语是流传于人间而言简意赅的语句,反映了人民生活的实践经验,一般都是口语形式留传下来的通俗易懂短句。所有的人类社会都有自己的谚语和俗话,对谚语和俗语的使用,是普世文化通
  • 莫瓦桑亨利·莫瓦桑(法语:Henri Moissan,1852年9月28日-1907年2月20日),法国化学家,获得1906年诺贝尔化学奖。莫瓦桑长期从事无机化学的研究,他在不良的实验室条件下,首次成功地离析了元素
  • 迈克尔·霍顿迈克尔·霍顿(英语:Michael Houghton,),英国生物化学家,参与开发丙型肝炎测试。霍顿1972年获东英吉利大学学士学位,并于1977年获伦敦大学国王学院生物学博士学位。然后,他在白金汉郡
  • 西堤岛坐标:48°51′17″N 2°20′51″E / 48.85472°N 2.34750°E / 48.85472; 2.34750西岱岛(法语:Île de la Cité,又音译西堤岛,意译城岛)是位于法国巴黎市中心塞纳河中的两座岛屿
  • 黄貂鱼
  • 数学领域随着数学史的推移,数学已成为一个极广泛的主题,因此有必要对不同的数学领域进行分类。许多不同的分类方案已经出现,有相同点也有不同点,差异的原因主要是它们使用的目的不同。此
  • 维吉尼亚级弗吉尼亚级可能意指下列美国海军所操作的战斗用船只舰级:
  • E-2CE-2空中预警机,官方昵称鹰眼(E-2 Hawkeye),是由美国诺斯洛普·格魯門公司在1950年代末期研制的舰载空中早期预警与航空管制机,是美国海军目前唯一使用的舰载空中预警机,也是截至20
  • 阿卜杜勒·拉扎克敦阿卜杜勒·拉扎克·侯赛因或敦拉扎克(马来语:Tun Abdul Razak bin Haji Dato' Hussein Al-Haj;1922年3月11日-1976年1月14日)是马来西亚第二任总理,巫统政治人物,有“发展之父”