1.静态库:
这类库的名字一般是libxxx.a, 利用静态函数库编译成的文件比较大, 因为整个函数库的所有数据都会被整合进目标代码中, 他的有点就显而易见了, 即编译后的执行程序不需要外部的函数库支持, 因为所有使用的函数都已经被编译进去了. 但是这也成为他的缺点, 因为如果静态函数库改变了, 程序必须重新编译;
2.动态函数库:
这类库的名字一般是libxxx.so, 相对于静态函数库, 动态函数库在编译时并没有被编译进目标代码中, 你的程序执行到相关函数时才调用该函数库里的相应函数, 因此动态函数库所产生的可执行文件比较小. 由于函数库没有被整合进你的程序, 而是程序运行时动态的申请并调用, 所以程序的运行环境中必须提供相应的库, 动态函数库的改变并不影响程序, 所以动态函数库的升级比较方便;