Linux下动态库(.so)和静态库(.a)
动态库和静态库的介绍 库分为两种,一种为静态库,文件名以 .a 结尾,另一种是动态库,文件名以 .so 结尾。静态库和动态库的使用各有利弊。 静态库的特点: 简单, 链接时 直接把静态库中的内容链接到可执行文件中,链接完成后,就不再需要静态库了。 静态库 不能共享 ,所有使用静态库的可执行文件中,都有静态库中的内容,增大了可执行文件的体积,增长了可执行文件装载的时间。。 动态库的特点: 动态库在程序 运行时 才载入,而且程序可以根据需求自主选择载入动态库的时机,所以使用动态库可以加快可执行文件装载的时间。 动态库是 可以共享 的,多个程序在运行中可以使用同一个动态库,可以减少程序总的大小。 一个栗子 //add.h: int add(int a, int b); //add.c: int add(int a, int b) { return a + b; } //sub.h: int sub(int a, int b); //sub.c: int sub(int a, int b) { return a - b; } //main.c: #include "add.h" #include "sub.h" #include <stdio.h> int main() { printf("Result of 1 + 1 is: %d\n", add(1,1)); printf(