✍ dations ◷ 2024-09-20 10:41:38 #电脑术语,计算机编程,计算机程序库

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

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

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

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

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

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

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

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

相关

  • 热导率热导率(英语:Thermal conductivity)其符号为 k {\displaystyle k} 、 λ {\displaystyl
  • 在化学中,元素周期表中的每一栏的化学元素称为族(英语:Group,Family)。长式周期表共分成18族,而f区元素的字段(在第3族和第4族之间)没有编号。同一族中的元素(尤其是主族元素)具有相似
  • FeOsub4/sub四氧化铁是一种无机化合物,化学式为FeO4,结构简式为(O2)FeO2,其中铁的氧化态为+6。它是铁元素的最高价氧化物,1987年时由金属铁制成的阳极在强碱性溶液中溶解制得,也有用激光蒸发
  • 第一哲学沉思集《第一哲学沉思集》(副标题为其中论证上帝的存在和灵魂的不灭)是法国哲学家勒内·笛卡儿所著的一本哲学论文选集,以拉丁语首次出版于1641年。由吕纳公爵(Duc de Luynes)翻译的法
  • C值谜C值谜(C-value enigma)更常见且较早出现的名称是C值悖论(C-value paradox)。指一个关于真核生物各物种的基因组大小差异的难题,也就是生物的C值(或基因组大小)并不与生物复杂程度相
  • DNA (消歧义)DNA,可指以下事物:
  • 宇航服宇航服是保护太空人在太空不受低温,射线等的侵害并提供人类生存所需的氧气的保护服。宇航服的氧气罐为太空人提供氧气。而排出的二氧化碳则由氢氧化锂(lithium hydroxide)所吸
  • 堪萨斯州奥拉西奥拉西 (Olathe, Kansas;.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Genti
  • 纳赛尔贾迈勒·阿卜杜-纳赛尔(阿拉伯语:جمال عبد الناصر حسين‎,转写:Jamāl ʻAbdu n-Nāṣir Ḥusayn,1918年1月15日-1970年9月28日),阿拉伯埃及共和国的第二任总统,195
  • 新余新余市,简称渝,古称新喻、新渝,是中华人民共和国江西省下辖的地级市,位于江西省中西部。市境东、西、北三面与宜春市接壤,南面与吉安市毗邻。地处赣西山地丘陵区与赣抚中游河谷阶