• 什么是库?


    库(library)是函数库的简称。每个库都有至少一个的头文件,和一个库文件。库文件中是目标代码状态的函数,而通过头文件,我们能够知道某个库中有哪些函数,按照怎样的方式才能使用它们。在学了C后,我们会了解的更多,现在要介绍的是:库按使用方式分两种,动态库和静态库。

    用过Windows的人应该知道一种叫DLL的文件,那就是Windows上的动态库,DLL是Dynamic link Library(动态链接库)的缩写。而在Linux上,动态库通常是用.so结尾的。
    而静态库在Linux上是以.a结尾的。动态库和静态库的区别就是,动态库不是使用它的程序的组成部分,即程序中不包括动态库的代码(见下插图),只包括使用动态库的代码,这样可以有效的减少程序的大小。当然,这样做也是有条件的:程序运行时,必须“动态地”调用动态库中的函数,则该动态库一定要在系统可以找的到的地方。而静态库就不必这么麻烦,使用了静态库,就意味着静态库中的代码也是程序的一部分,程序会变的比较大。但不必依赖动态库是一大优势,可以使用在没有该动态库的系统上。

    Windows上发布的软件常常是以静态编译(即编译时包括静态库)的方式发布的,而大型软件则以动态编译加动态库的方式发布(可以有效减少软件的大小)。

  • 相关阅读:
    Java虚拟机--编译那点事儿
    Java虚拟机--常用Java命令(二)
    Java虚拟机--常用Java命令(一)
    Java虚拟机--类加载机制
    Java虚拟机--JIT编译器
    Java虚拟机--垃圾回收机制
    Java虚拟机--对象模型
    Junit测试--多个测试接口如何产生业务联系
    Java虚拟机--内存模型
    Java虚拟机--内存结构
  • 原文地址:https://www.cnblogs.com/chisheng1686/p/3670875.html
Copyright © 2020-2023  润新知