因为后来接触DLL这块比较多,但是头脑里始终没有比较清晰的概念和框架所以比较混乱,所以每次弄的时候都要花费时间再捋顺概念,于是有了这篇文章:
1.梳理下各种概念,建立关于这个知识点的框架
2.mark方便回看和避免以后浪费时间做重复性工作
3.还有很多不懂地方,希望抛砖引玉有大佬来解答我的问题
静态链接库,动态连接库概念及优缺点
-
静态连接库
静态连接库:Window下以*.lib Linux下以*.a 命名的文件统称;
静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序发布运行的时候不再需要其它的库文件
-
动态连接库
动态连接库(Dynamic-link Library,缩写为 DLL):Window下以*.dll Linux下以*.so 命名的文件统称;
动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此在发布和运行时需要相应DLL文件的支持
-
分析
分隔符上边是优点下边是缺点
静态链接库 | 动态链接库 |
---|---|
代码装载速度快,执行速度略比动态链接库快 | 更加节省内存并减少页面交换 |
只需保证在 |