关于VS2022中C++导入第三方库的方式


首先,新建一个Cpp项目(控制台项目即可,其他项目也无所谓),右键点击项目名称(Test1)选择属性或者在VS2022工具栏选择调试标签->属性按钮打开属性页。


注意点: 在开始其他操作前请注意先进行 配置和平台选项框的选择。配置选框选定了是配置为DeBug模式还是Release模式。而平台则是选定了32位程序还是64位程序。(如果选错了会怎么样?例如如果对于32位的库选择了64位平台配置但调试时又选择的32位编译,则也许语法提示不会标红但编译时可能会报解析不到函数等错误。)

 在进入主题之前,还需要弄清楚一些前置知识

在属性页中,存在三个重要标签目录:VC++目录、C/C++、链接器

1.在VC++标签中,存在包含目录和库目录

2.在C/C++标签-常规存在附加包含目录在链接器-常规中存在附加库目录输入中存在附加依赖项。很多人对此比较蒙圈。


首先

1.VC++目录下的包含目录和库目录是什么东西?

   包含目录:这个目录列表用于指定预处理器在处理#include <...>指令时应该查找的目录。大白话就是:你include了一个东西,你告诉我这玩意到底在哪,我去给你找来用,你不告诉我我当然找不到了。

      库目录:这是一系列目录,链接器将在这里寻找库文件(例如.lib.dll文件)。有些第三方库只有头文件(header-only库),但是有些库你会发现他还提供了链接库文件,这时候你得告诉他链接库在哪。


然后

C/C++目录下的附加包含目录:这个设置补充了VC++目录中的“包含目录”,允许你添加额外的目录供预处理器在编译阶段搜索头文件。这些目录仅对当前项目有效。

链接器-常规页中的附加库目录:这个设置告诉链接器去哪里寻找静态库和动态链接库(.lib.dll)。与VC++目录中的“库目录”类似,但它是链接器特定的,并且可以独立于VC++目录进行配置。
在链接器-输入标签页中存在附加依赖项:这个选项允许你列出项目在链接时需要的库文件的完整路径或名称。大白话:你不但得告诉我你在哪,你还得告诉我是哪一个。


     很多人一看,不对呀,这不一样的东西嘛? 如果你去搜索你就会发现很多人会告诉你包含目录和附加包含目录(库目录和附加库目录)的区别主要在于全局还是当前项目。在现代的Visual Studio版本中,C/C++标签下的“附加包含目录”和链接器标签下的“常规-附加库目录”与“输入-附加依赖项”往往足以完成第三方库的导入,而无需再配置VC++目录,现在也更建议这么做。(如果是老项目且需要以这种形式导入,请不要自作主张瞎搞,问清同事或者学长/学姐)


最后

  在链接器-输入标签页中存在附加依赖项:这个选项允许你列出项目在链接时需要的库文件的完整路径或名称。大白话:你不但得告诉我你在哪,你还得告诉我是哪一个。

总的来说:C/C++标签页和链接器标签页可以提供清晰的项目级配置控制。如果项目级的控制足以应对你的项目,则可以不去配置VC++标签目录。 
 

引用方式

静态库的引用步骤:

1. **添加头文件路径**:

- 在项目属性 -> C/C++ -> 常规 -> 附加包含目录,添加头文件(.h)所在目录。

2. **添加静态库文件路径**:

- 在项目属性 -> 链接器 -> 常规 -> 附加库目录,添加静态库(.lib)所在目录。

3. **指定要链接的库**:

- 在项目属性 -> 链接器 -> 输入 -> 附加依赖项,添加静态库的文件名(例如`mylib.lib`)。

4. **代码中引入头文件**:

- 在源文件中使用`#include "mylib.h"`。

动态库的引用步骤(隐式链接):

1. **添加头文件路径**:

- 同静态库步骤1。

2. **添加导入库(.lib)文件路径**:

- 在项目属性 -> 链接器 -> 常规 -> 附加库目录,添加导入库(.lib)所在目录。

3. **指定要链接的导入库**:

- 在项目属性 -> 链接器 -> 输入 -> 附加依赖项,添加导入库的文件名(例如`mydll.lib`)。

4. **代码中引入头文件**:

- 在源文件中使用`#include "mydll.h"`。

5. **确保运行时能找到.dll**:

- 将.dll文件放在可执行文件(.exe)所在的目录,或者放在系统路径(如System32)或通过环境变量指定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想要入门的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值