静态库

✍ dations ◷ 2025-12-07 15:30:54 #计算机程序库

在计算机科学中,静态库(英语: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,"*")预编译指令要求连接器连入。

相关

  • EBV人类疱疹病毒第四型(拉丁语:Epstein-Barr virus,缩写EBV、爱泼斯坦-巴尔病毒、 human herpesvirus 4 (HHV-4)),又称为EB病毒,是最常见能引起人类疾病的病毒之一。EBV是在公元1964
  • 特高频特高频(英语:Ultra High Frequency,简称UHF),是指频率由300MHz到3GHz的电磁波。波长由10cm到1m不等。用于短途通信,可以用小而短的天线作收发,适合移动通信。← 波长越短    
  • 硫化铅硫化铅是一种无机化合物,化学式为PbS,分子量239.26。不溶于水、碱溶液和乙醇,溶于硝酸、浓盐酸等。可由铅盐溶液中通入硫化氢而得。硫化铅是一种重要的窄禁带半导体材料,在室温
  • 范登堡反应范登堡反应(Van den Bergh reaction),又译凡登白反应、范登伯格氏反应结合胆红素可以很快与重氮试剂(范登堡试剂)作用产生紫红色的偶氮化合物。而非结合胆红素由于存在分子内氢键
  • 加州大学洛杉矶分校粉蓝色和金色加利福尼亚大学洛杉矶分校(英语:University of California, Los Angeles),简称加州大学洛杉矶分校(UCLA),是一所位于美国加利福尼亚州洛杉矶的公立研究型大学,创办于191
  • 生态层次分析生态层次分析(Ecological levels of analysis)是立基在Bronfenbrenner的“人类生态论”(human ecology)。由于人类与环境是相互影响,单一事件或问题可能有多重原因所导致,故透
  • 介子介子是自旋为整数、重子数为零的强子,参与强相互作用。介子属于强子类。它是比电子重的带电或不带电的粒子。根据夸克模型,介子是由一个夸克和一个反夸克组成的束缚态,这一对夸
  • 塔特拉山塔特拉山脉(波兰语:Tatry;斯洛伐克语:Tatry;英语:Tatra)是位于中欧的山脉,是喀尔巴阡山脉之中最高,也是斯洛伐克与波兰的边界山脉。最高峰格尔拉赫峰,海拔2655米。斯洛伐克和波兰的跨
  • 坤布伦坤布伦(泰语:ขุนบรมราชาธิราช หรือ ขุนบรม Khun Borom Rachathirath;老挝语:ຂຸນບູຣົມ),是东南亚台语民族传说中的祖先。根据台语民族的传说,坤布
  • 英格兰人名英格兰人名大多起源及使用于英格兰。在英格兰及英语圈的其他国家,多数情况下,一个完整的名字由名(Given name,通常是教名)和姓(Last name,通常是家族的姓)构成。名可以有多个,他们通