.a文件链接库的使用举例
库是程序代码的集合,是共享程序代码的一种方式。
分类一:
开源库和闭源库
分类二:
不公开源代码,是经过编译后的二进制文件,看不到具体实现
主要分为:静态库、动态库
静态库和动态库的存在形式
静态库: .a 和 .framework
动态库: .dylib 和 .framework
两者区别:
静态库:链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝 (左图所示)
动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存 。
通常情况下,对函数库的链接是放在编译时期(compile time)完成的。所有相关的对象文件(object file)与牵涉到的函数库(library)被链接合成一个可执行文件(executable file)。程序在运行时,与函数库再无瓜葛,因为所有需要的函数已拷贝到自己门下。所以这些函数库被成为静态库(static libaray),通常文件名为“libxxx.a”的形式。
其实,我们也可以把对一些库函数的链接载入推迟到程序运行的时期(runtime)。这就是如雷贯耳的动态链接库(dynamic link library)技术。
参考链接:
https://blog.csdn.net/fys_0801/article/details/51089529
静态库使用举例:
https://blog.csdn.net/zjwen2007/article/details/50961171
动态库使用举例:
https://zhidao.baidu.com/question/1667094611971186427.html