动态库与静态库的区别及分别在windows及linux环境下的制作及用法指南
1,静态库会被编译链接到到可执行程序中,使可执行程序变得臃肿,每次发布程序必须重新编译所有的程序。但程序运行时不需要依赖其他库。可单独直接运行
2,动态库不会被编译链接到可执行程序中,会与可执行程序一起存在,在可执行程序开始运行的时候,才会主动加载所需要的动态库。每次发布程序可根据实际需要只发布所需的动态库,而不必重新编译所有程序(该方法一般用于商用:省时省力)。
在linux 环境下:
一,静态编译需要静态库(libxxx.a),静态编译成可执行程序后(一般程序会比较大),可单独运该程序,不需要依赖其他文件。
二,动态编译需要动态库(libxxx.so),动态编译成可执行文件,需要与所需要的动态库一起存在,才可运行。
三,静态库与动态库的制作可直接使用gun编译器
在windows环境下:
一,静态编译需要静态库(xxx.lib),静态编译成可执行程序后(一般程序会比较大),可单独运该程序,不需要依赖其他文件。
二,动态编译需要既需要动态库(xxx.dll)又需要静态库(xxx.lib),动态编译成可执行文件,需要与所需要的动态库(xxx.dll一起存在,才可运行。
三,静态库与动态库的制作可直接使用Microsoft visual studio 编译器