静态库

✍ dations ◷ 2025-06-29 01:05:39 #计算机程序库

在计算机科学中,静态库(英语:Static library, Statically-linked library),或称静态库,是一个外部函数与变量的集合体。静态库的文件内容,通常包含一堆程序员自定的变量与函数,其内容不像动态链接库那么复杂,在编译期间由编译器与链接器将它集成至应用程序内,并制作成目标文件以及可以独立运作的可执行文件。而这个可执行文件与编译可执行文件的程序,都是一种程序的静态创建(static build)。以过去的观点来说,库只能算是静态(static)类型。

只需保证在开发者的计算机有正确的库文件,在以二进制发布时不需考虑在用户的计算机上库文件是否存在及版本问题,可避免DLL地狱等问题。

生成的可执行文件体积较大。当初正是为了避免此问题,才开发了动态库技术。

静态库可以用简单的C语言或是C++代码去创建它。这两个编程语言提供关键字指定函数与变量是否为外部(external)或是内部(internal)链接,此外,还提供其他的特性。

创建这类的库时,将函数或是变量导出(export)一定要用外部链接( )的语法特别指定它们。

静态库文件名为lib*.a,在使用了其中的函数之后,使用-l*参数要求连接器连入。

例如,在许多系统上,当使用了math.h中的函数后,需要使用-lm参数连接libm.a文件。

静态库文件名为*.lib,在使用了其中的函数之后,使用#pragma comment(lib,"*")预编译指令要求连接器连入。

相关

  • 论产生和毁灭《论产生和毁灭》(古希腊语:Περὶ γενέσεως καὶ φθορᾶς,拉丁语:De Generatione et Corruptione)也叫《论生灭》(英语:On Coming to Be and Passing Away),是亚里
  • 核转运蛋白核转运蛋白(英语:Karyopherins)是一组蛋白质,负责真核细胞细胞质和细胞核之间的分子运输(英语:transport protein),核转运蛋白介导运输会在核孔间发生。大多数的蛋白质都需要核转运
  • 铁丝网有刺铁丝网(barbed wire),是一种防御型的金属丝,身上布满尖锐的刃口,刃与刃之间亦有相同的距离。这类丝网价格低廉,用来保护墙内的财产,并是第一次世界大战里堑壕战的重要防守设备
  • UTC+12UTC+12:00时区包含以下区域:
  • RNA诱导沉默复合体RNA诱导沉默复合物(RNA-induced silencing complex,RISC),是RNA干扰技术中起作用的重要物质。一定数量的外源性双链RNA(dsRNA)进入细胞后,被类似于核糖核酸酶Ⅲ的Dicer酶切割成短
  • 塞姆人闪米特人(希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","Keter Aram Tsova","Taamey
  • 萨达姆萨达姆·侯赛因·阿卜杜勒-迈吉德·提克里蒂(阿拉伯语:صدام حسين عبد المجيد التكريتي‎,1937年4月28日-2006年12月30日),简称萨达姆·侯赛因(阿拉伯语:ص
  • 714年前9世纪 | 前8世纪 | 前7世纪前730年代 前720年代 | 前710年代 | 前700年代 前690年代前719年 前718年 前717年 前716年 前715年 | 前714年 | 前713年 前712年 前711年 前7
  • 院校局中国人民解放军军徽中央军委训练管理部院校局,位于北京市,是中央军委训练管理部下属局,负责全军院校工作。在深化国防和军队改革中,2016年1月组建中央军委训练管理部,下设中央军
  • 荷兰王国宪法荷兰王国宪法 (荷兰语:Grondwet voor het Koninkrijk der Nederlanden)是荷兰王国两个基本政治文件之一(另一个是荷兰王国规约,是整个荷兰王国具有宪法效力文件), 也是荷兰王国欧洲