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