库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。
库分静态库和动态库两种。
一、静态函数库
1、静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a,如:libHelloWorld.a;
2、静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中;
3、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;
4、静态函数库改变了,程序必须重新编译;二、动态函数库
1、动态库文件名的命名规范是以lib为前缀,紧接着跟动态库名,扩展名为.so,如:libHelloWorld.so;
2、动态函数库所产生的可执行文件比较小,因为在编译的时候并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数;
3、动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在;
4、动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便;