✍ dations ◷ 2025-10-02 07:49:01 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • 甲羟戊酸途径甲羟戊酸途径(Mevalonate pathway)甲羟戊酸途径,也被称为异戊二烯途径(Isoprenoid pathway)或HMG-CoA还原酶(HMG-CoA reductase pathway)途径,是存在于真核生物,古菌和一些细菌中
  • 自动注射器自助注射器(英语:Autoinjector)是一种用于快速注射某类特定剂量药物(通常是急救药物)的医疗器械。大多数的自助注射器都带有弹簧伸缩针头,这种设计可以使注射器更加便于使用,尤其是
  • 蒙古国行政区划蒙古国分为首都(蒙古语:нийслэл)乌兰巴托和21个省(蒙古语:аймаг)。省分为县,县分为村(蒙古语:баг)。截至2006年,蒙古国共有331个县。
  • 无始无始无明,佛教术语。无明可分两种:一念无明、无始无明。“无始无明”,是指对法界实相如来藏的智慧一无所知,因而直接或间接影响众生不能成就般若智慧功德与解脱生死,以及究竟圆满
  • 维尔纳·法伊曼维尔纳·法伊曼(德语:Werner Faymann;1960年5月14日-),奥地利政治家、曾任奥地利总理。 由于未得到奥地利社会民主党一致支持,维尔纳·法伊曼宣布辞去奥地利总理和该党领导人职务。
  • 公共机构政治主题非政府部门公共机构(英语:non-departmental public body,缩写:NDPB)是英国内阁、财政部、苏格兰政府和北爱尔兰行政院采用的一种半官方机构分类方式,它不是政府部门的组成
  • 里氏地震震级里氏震级(英语:Richter magnitude scale,港澳称黎克特制地震震级,台湾称芮氏地震规模),亦称近震震级(记作 M L
  • 第二通道马新第二通道(马来语:Laluan Kedua Malaysia-Singapura,新加坡官方:Tuas Second Link)简称“第二通道”(LINKEDUA),是一座总长1,920米(6,300英尺)、连接马来西亚柔佛州和新加坡的跨海
  • 福利经济学基本定理福利经济学共有两大基本定理。福利经济学第一基本定理,或者福利经济学第一定律,是指在经济主体的偏好被良好定义,并满足以下三个条件时:1.充分竞争2.没有信息不对称 3.没有外部
  • 叠氮酸叠氮酸,分子式HN3,在常温常压下为一种无色、具挥发性、有刺激臭、高爆炸性的液体。是拟卤化氢的一种。叠氮酸主要用于保存贮存溶液(stock solution),以及作为一种试剂。叠氮酸在1