1、本质上来说库是一种可执行的二进制代码(但不可以独立执行),可以被操作系统载入内存执行。
2、linux 下的库有两种:静态库和共享库。
3、二者的不同点在于代码被载入的时刻不同:静态库的代码在编译过程中已经被载入可执行程序,因此生成的可执行程序体积较大。静态用.a为后缀;共享库(动态库)的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此生成的可执行程序代码体积较小,动态通常用.so为后缀。
4、静态库,动态库文件在linux下是如何生成的:
gcc -c hello.c -o hello.o
1)、生成静态库 生成静态库使用ar工具
ar cqs libhello.a hello.o
2)、生成动态库 用gcc来完成
gcc -shared -o libhello.so.1.0 hello.o
5、在 linux 下,库文件一般放在/usr/lib和/lib下;静态库的名字一般为libxxxx.a,其中 xxxx 是该lib的名称;动态库的名字一般为libxxxx.so.major.minor,xxxx 是该lib的名称,major是主版本号,minor是副版本号。