此处仅以VS2010为例,详细说明一下如何在VS环境下生成和使用C++的静态库与动态库。Qt下生成和使用静态和动态库后续再讲。
本文仅供初学者参考,如果有问题欢迎大家指正。
首先简单地理解一下静态库与动态库,以及两者的区别。
静态库(*.lib): 将*.cpp文件中的函数的地址和定义,以及函数之间的链接关系通通打包,生成的一个二进制文件;
动态库(*.lib+*.dll): 动态库的*.lib文件,打包的只是*.cpp文件中函数的地址和链接,函数的具体定义打包在*.dll文件中。
联系:
1.二者都不包含函数的声明部分,因此调用这两种库的时候,都需要包含相应的头文件(*.h);
2.静态库和动态库的*.lib文件,在生成可执行文件(*.exe)的时候,都将被打包进*.exe文件中;
区别:
1.静态库的*.lib文件远大于动态库的*.lib文件;
2.动态库的*.dll文件作为可执