动静态库及动静态链接
1 链接在编译过程中的位置
图:编译过程
2 静态链接库
静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件。特点:代码的装载速度快,执行速度也比较快,因为编译时它只会把你需要的那部分链接进去,应用程序相对比较大。但是如果多个应用程序使用的话,会被装载多次,浪费内存。
3 动态链接库
动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。特点:
1.共享:多个应用程序可以使用同一个动态库,启动多个应用程序的时候,只需要将动态库加载到内存一次即可;注意:在执行过程中,启动多个应用程序,需要在每个应用程序对应的进程空间中都有一份dll副本。
2.开发模块好:要求设计者对功能划分的比较好。

本文详细介绍了静态链接库和动态链接库的区别,强调了动态链接库在内存中的共享特性,以及多进程如何共享动态链接库。动态链接库可以在运行时加载,减少内存浪费,但多个进程使用时,每个进程都有自己的数据副本。动态链接库不能直接运行,但通过LoadLibrary等功能可实现进程间通信。
最低0.47元/天 解锁文章
2640

被折叠的 条评论
为什么被折叠?



