静态库

✍ dations ◷ 2025-12-11 17:15:03 #计算机程序库

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

相关

  • 失业意指未获得任何有薪工作的状态。在经济学范畴中,一个人愿意并有能力为获取报酬而工作,且有获取工作的行动,但却没找到工作的情况,就被认为是失业。失业率是劳动人口里符合“失业
  • 软焊软钎焊、软焊(英语:soldering)是一种利用熔化熔点较低金属来连结其他金属工件的制造过程。被熔化的金属一般称为焊料,一般其熔点低于摄氏400度。软钎焊和硬钎焊的差异是在于焊料
  • QJ54A·B·C·D·G·H·QI·J·L·M·N·P·R·S·VATCvet代码QJ54(用于乳房内的抗分支杆菌药)是兽用解剖学治疗学及化学分类系统的一个药物分组,这是由世界卫生组织药物统计方法整
  • 日行性昼行性是指动物或植物在白昼比较活跃,在夜晚有一段睡眠或是不活跃之时间,与夜行性相反。昼行性动物实际的活跃时间会随许多环境因素而变化,例如温度、可用视觉找到食物的能力,被
  • 五角大楼五角大楼(英语:The Pentagon)是美国国防部所在地,位于华盛顿特区西南方的弗吉尼亚州阿灵顿县。由于其特殊的职能,所以有时“五角大楼”一词不仅仅代表这座建筑本身,也常常用作美国
  • 刘易斯刘易斯县(Lewis County, Washington)是美国华盛顿州西南部的一个县。面积6,310平方公里。根据美国2000年人口普查,共有人口68,600人。县治奇黑利斯(Chehalis)。成立于1845年12月1
  • 因瑟利克空军基地第39基地联队(英语:39th Air Base Wing)因吉利克空军基地(土耳其语:İncirlik Hava Üssü,IATA代码:UAB;ICAO代码:LTAG)是土耳其的空军基地,位于土耳其东南部临近叙利亚的阿达纳市因吉
  • 流通市场起源于古时人类对于固定时段或地点进行交易的场所的称呼,而此交易场所是那些需要经常进行物品交换的人,为了减少搜寻成本所自发形成的。词中的“市”指的并非“城市”,而是
  • 美国战争部美国战争部(United States Department of War)是一个已经废除的美国内阁部级单位,负责管辖美国陆军并维护其装备。在1798年美国海军部建立和1947年美国空军部建立之前,亦曾负责
  • 硝酸锑(III)硝酸锑(III)是一种无机化合物,化学式为Sb(NO3)3。它可由电化学法得到。三氧化二锑溶于硝酸,溶液中也会产生Sb(NO3)3。硝酸锑三水合物的乙醇溶液和Schiff碱PhCH=CH-CH=N-NH-C(=