C++动态库和静态库的使用方法和区别

1.简要介绍

①C++中代码有以下三种分发方式:

源码:在工程中需包含引用工程的源文件(.cpp)和头文件(.h),这种方法会导致工程较为庞大。
动态库:只需包含引用工程的dll文件即可,引用工程的头文件和lib库文件可选,通常都会带上。
静态库:只需包含引用工程编译生成的lib文件和头文件,工程看起来较为清爽简洁。代码分发方式

②动态库和静态库的区别

两者各有优缺点,区别如下图:
静态库:当存在a.exe,b.exe和c.exe这三个应用程序模块中都需使用同一个lib库时,会在内存中有多份重复的代码,导致链接时间较长。
动态库:当存在a.exe,b.exe和c.exe这三个应用程序模块中都需使用同一个lib库时,在内存中仅有一份重复的代码。
区别

③执行程序的过程:

常见使用问题:
error C3861:“Add”:找不到标识符,通常是未包含引用函数存在的头文件。
error LNK2019:无法解析的外部符号,通常是引用的静态库lib文件存在问题。
由于找不到DLL.dll文件,通常是当前工程找不到引用工程的动态库dll文件,通常会把引用的dll文件拷贝到当前工程目录下。
执行过程

2.如何使用两种库

①静态库有两种方法:

a.在工程中包含引用工程的头文件和库文件(不推荐使用,不够整洁)

#include "D:\\chenwenxin\\chaofei.h"
#pragma comment(lib,"D:\\chenwenxin\\chaofei.lib")

b.选择项目名->右击属性->分别在C++和链接器中加入include目录和lib目录,再在链接器的输入项中增加lib文件。(推荐)

②动态库的使用:

同①中的b方法,再将引用工程的dll文件拷贝到当前工程的目录下。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值