首页 > 链接库 阅读:28011

链接库是什么(动态链接库和静态链接库)

 
静态链接库和动态链接库是最常用的两种共享代码的方法,从本节开始,您将系统地了解它们,并彻底搞清楚以下问题:
  • 什么是库,什么是链接库,以及静态链接库和动态链接库的区别;
  • 如何手动创建一个静态或者动态链接库;
  • 如何在自己的项目中使用第三方提供的静态或者动态链接库。

首先我们来了解一下库和链接库的含义。

什么是链接库

计算机中,有些文件专门用于存储可以重复使用的代码块,例如功能实用的函数或者类,我们通常将它们称为库文件,简称“库”(Library)。

以 C 语言为例,如下为大家展示的就是一个函数库:
//myMath.c
int add(int a, int b) {
    return  a + b;
}

int sub(int a, int b) {
    return  a - b;
}

int mul(int a, int b) {
    return  a * b;
}

int div(int a, int b) {
    if (b != 0) {
        return a / b;
    }
    return -1;
}
myMath.c 文件中包含 4 个函数,它们分别可以完成两个整数的加法、减法、乘法和除法运算。myMath.c 库文件的用法也很简单,直接将它添加到某一个 C 语言项目中,就可以直接调用文件中的 4 个函数,每个函数可以调用多次。

显然,实际开发中引入他人编写好的库文件可以省略某些功能的开发环节,提高项目的开发效率。但遗憾的是,类似 myMath.c 这种“开源”的库文件很难找到,多数程序员并不会直接分享源代码,他们更愿意分享库文件的二进制版本——链接库。

所谓链接库,其实就是将开源的库文件(例如上面提到的 myMath.c)进行编译、打包操作后得到的二进制文件。虽然链接库是二进制文件,但无法独立运行,必须等待其它程序调用,才会被载入内存。

一个完整