首先,新建一个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)或通过环境变量指定。