(四)动态库与静态库使用(重置版)

13 阅读1分钟

概念

1.1 代码分发方式:

image.png 1.2 静态库: 1.优点:代码合并到模块中,无零散文件。 2.缺点:模块体积变大,当多个模块使用该库时,内存中有多份代码。

1.3 动态库: 1.优点:模块体积几乎不变,当多个模块使用该库时,内存中只有一份代码。 2.缺点:代码在单独文件中,有零散文件。

1.4 C/C++到可执行程序的过程:

image.png

静态库的使用

2.1 偷懒式使用:

image.png 注:#pragma comment 是VS的预处理指令,用来告诉编译器额外做一些事情,最常用的就是:自动链接某个静态库/导入库(.lib)

格式: #pragma comment(lib,"xxx.lib") 2.2 正式的配置方法: 在项目的属性的C/C++的常规的附加包含目录中,添加头文件路径: image.png

在项目的属性的链接器的附加库目录中,添加.lib文件路径: image.png

在项目的属性的链接器的输入的附加依赖项中,添加.lib文件名字: image.png

在项目中添加头文件,即可正常使用:

image.png

动态库的使用

3.1 配置方法: .h文件配置方法同静态库:

image.png

在项目的属性的链接器的附加库目录中,添加.lib文件路径:

image.png 在项目的属性的链接器的输入的附加依赖项中,添加.lib文件名字:

image.png

添加头文件,正常使用:

image.png 编译没问题,但调试有问题: 把.dll文件拷贝到项目的.exe文件同级目录, image.png