静态库lib和动态库dll
有两种库(Lib,所谓的库,其实就对cpp源文件文件进行打包),一种是静态库,一种是动态库。
静态库
文件:会使用到.h和.lib文件这两种文件
编译器链接可执行文件时,链接器会从.lib文件中复制这些函数和数据,并且最终合并成一个可执行exe文件。
使用方法
- 在使用该库的源文件中包含该库的.h文件
- 在使用该库的源文件中写下以下语句
#pragma comment(lib, "库名.lib")
动态库
文件:会使用到.h和.lib和.dll这三种文件(其中.h和.lib文件不一定有)
这里的.lib文件被称为引入库文件(或导入库文件),它与静态库中的.lib文件是不同的:在静态库中的.lib文件包含了执行代码和符号表等;而在动态库中,它的执行代码位于.dll文件中,.lib只包含地址符号表等。但是静态库的.lib文件与动态库的.lib文件的引入方式是一样的,要在链接的路径上添加找到这些.lib的路径。
动态库中的.dll文件中的指令不会被包含到最终的可执行exe文件中,而是在执行exe文件时进行实时的动态加载。.dll文件被更改,可以直接替换掉.dll文件而不需要重新链