静态库

✍ dations ◷ 2025-12-03 18:23:46 #计算机程序库

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

相关

  • 头霉素头霉素(英语:Cephamycins)是一类β-内酰胺类抗生素,和头孢菌素同属于头孢烯衍生物,区别在于头霉素比头孢菌素多一个7α位置上的甲氧基。有时头霉素也被当做头孢菌素中的一类,与大
  • 波罗的大陆波罗的大陆(Baltica)是个史前大陆,存在于晚元古宙到早古生代,包含现今的东欧克拉通(芬挪斯堪地盾、伏尔加-乌拉尔克拉通、与萨尔马提亚克拉通)。波罗的大陆的原始部分形成于18亿年
  • 印度苦楝树Melia azadirachta L. Antelaea azadirachta (L.) Adelb.印度苦楝树(英语:Azadirachta indica),又称印度楝树、印度蒜楝、印度假苦楝、宁树(英语:Neem)、印度紫丁香(Indian lilac),楝
  • 雅克·卡蒂埃雅克·卡蒂埃(法语:Jacques Cartier,1491年12月31日-1557年9月1日)是法国探险家、航海家。雅克·卡蒂埃在法国国王弗朗索瓦一世的资助下一共进行了三次航行。既未能开辟通往东方
  • 菲涅耳衍射在光学里,菲涅耳衍射(Fresnel diffraction)指的是光波在近场区域的衍射。菲涅耳衍射积分式可以用来计算光波在近场区域的传播,因法国物理学者奥古斯丁·菲涅耳而命名,是基尔霍夫
  • 国家舞台艺术十大精品工程国家舞台艺术十大精品工程,由中华人民共和国文化部和中华人民共和国财政部2002年联合启动实施的剧目评选文化工程。每年初选30个剧目,进行前期资助。加工修改和接受市场检验后
  • tachycardia心跳过速(tachycardia、tachyarrhythmia),也称心动过速、心跳过快。是指心跳速度超出了正常范围,达到每分钟一百次以上的现象。剧烈的体育运动、紧张、焦虑或服用某些药物等可能
  • 延森约翰内斯·汉斯·丹尼尔·延森(德语:Johannes Hans Daniel Jensen,1907年6月25日-1973年2月11日),德国物理学家,因发现原子核的核壳层模型理论而获得1963年的诺贝尔物理学奖。约翰
  • 克拉底王朝克拉底人(梵文:किरात、Kirata),是指喜玛拉雅山脉的土著,分布在缅甸至加德满都谷地、印度东北部,属于黄色人种,大概一至三万年前来到此地。从广义上讲克拉底人有林布族、拉伊人
  • 玉蟹总科见内文玉蟹总科(Leucosioidea)是短尾下目(螃蟹)的其中一个总科。根据2009年的分类,玉蟹总科包括下列两个科:根据这个新的分类, 黎明蟹科(Matutidae)改为划归馒头蟹总科,不再属于玉