笔记_2026.4.28_003

📘 笔记一:Visual Studio 中配置 OpenCV 的完整笔记

一、前提条件

  • 已安装 Visual Studio(2017/2019/2022 等)

  • 已下载 OpenCV(例如从官网获取预编译版,解压到本地,如 D:\opencv)


二、配置步骤(项目级配置,推荐)

1. 设置环境变量(可选,便于路径管理)
  • 创建系统环境变量 OPENCV,值为 OpenCV 根目录,例如 D:\opencv

  • 注意:

    • 路径末尾不要加反斜杠

    • 设置后必须重启 Visual Studio 才能生效

    • 建议设为系统变量而非用户变量(避免管理员权限问题)

2. 配置项目属性

在解决方案资源管理器中右键项目 → 属性

配置项 路径/值
配置 选择 All Configurations(或分别设置 Debug/Release)
平台 选择 x64 或 x86(必须与 OpenCV 库的位数一致)
  • VC++ 目录 → 包含目录

    添加:$(OPENCV)\build\include

    或绝对路径:D:\opencv\build\include

  • VC++ 目录 → 库目录

    添加:$(OPENCV)\build\x64\vc15\lib (根据编译器版本选择 vc14/vc15,根据平台选择 x64/x86)

  • 链接器 → 输入 → 附加依赖项

    添加:

    • OpenCV 4.x:opencv_world4xx.lib(如 opencv_world480.lib)

    • OpenCV 3.x/2.x:按需添加多个 opencv_*.lib

3. 运行时 PATH 配置(避免运行时找不到 DLL)
  • 将 $(OPENCV)\build\x64\vc15\bin 添加到系统 PATH 环境变量

  • 或直接将所需 .dll 复制到 exe 所在目录

4. 验证配置

在代码中写入:

复制代码
#include <opencv2/opencv.hpp>

若能正常编译且无 E1696 或 C1083 错误,则配置成功。


三、常见错误及解决方法

错误现象 原因 解决方法
E1696 / C1083: 无法打开源文件 "opencv2/opencv.hpp" 1. $(OPENCV) 宏未展开(未重启 VS 或变量类型不对) 2. 包含目录路径错误(缺少 build\include) 1. 重启 VS,或将 OPENCV 改为系统变量 2. 确认实际目录结构:...\opencv\build\include\opencv2\opencv.hpp 是否存在 3. 使用绝对路径临时测试
LNK1104: 无法打开文件 .exe 1. 程序仍在运行 2. 宿主进程占用 3. 权限不足 4. 杀毒软件拦截 1. 任务管理器结束进程 2. 取消"启用 Visual Studio 托管进程" 3. 以管理员身份运行 VS 4. 添加排除项
LNK1104: 无法打开 opencv_world4xx.lib 库目录配置错误或 lib 文件名不匹配 检查库目录是否指向含 .lib 的文件夹,检查附加依赖项中的 lib 名称与 OpenCV 版本一致
运行时提示缺少 opencv_world4xx.dll PATH 未包含 bin 目录,或 DLL 不存在 将 bin 目录加入系统 PATH,或复制 DLL 到 exe 目录
IntelliSense 报大量错误但编译成功 IntelliSense 配置与编译器不一致或缓存损坏 删除 .vs 文件夹重启 VS,或刷新 IntelliSense 数据库

四、高级提示

  • 使用属性表 :将 OpenCV 配置保存为 .props 属性表,方便多个项目复用。

  • Debug 与 Release 分开配置 :OpenCV 预编译版通常只有 Release 库,Debug 需自行编译或使用 opencv_world4xxd.lib(若提供)。

  • 平台匹配 :确保解决方案平台(x64/x86)与 OpenCV 库的位数一致,否则出现 LNK1112 模块位数冲突。

  • 编译器版本 :OpenCV 预编译包中的 vc14 对应 VS 2015,vc15 对应 VS 2017/2019/2022(兼容),请根据你的 VS 版本选择。


五、快速排查流程(遇到问题时)

  1. 确认目录结构 :...\opencv\build\include\opencv2\opencv.hpp 存在吗?

  2. 确认 VS 中路径 :在包含目录中点击"宏"按钮,查看 $(OPENCV) 是否展开为正确路径。

  3. 清理并重装 :删除 .vs 文件夹,清理解决方案,重新生成。

  4. 最小测试 :新建控制台项目,仅包含 OpenCV 头文件并显示 cv::Mat,验证配置是否生效。

相关推荐
于眠牧北1 小时前
雷电模拟器9/14搭配charles抓取自带浏览器接口9/14
经验分享·笔记·git
Answer1st9 小时前
【嵌入式模块】UART通信模块
笔记
晨间晓9 小时前
图片细节丰富不丰富?用华为云码道开发 OpenCV 纹理复杂度分析工具
人工智能·opencv·华为云
和侧9 小时前
离子注入后为什么必须配套退火工艺?
笔记·学习
所以遗憾是什么呢?10 小时前
【题解】Educational Codeforces Round 195 (Rated for Div. 2) ABCDE
c++·动态规划·acm·icpc·ccpc·xcpc·codeforecs
Lhan.zzZ12 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
sysu_chenxy13 小时前
二重循环输出二维图形
c++
TheBlackHoleLab13 小时前
【Vulnhub系列】DarkHole1: 渗透测试笔记,没有踩渗透的坑,却踩到了虚拟机平台的坑,人生处处是大坑
笔记·vulnhub·easy·darkhole1
ACP广源盛1392462567314 小时前
硬件选型笔记:GSV2231@ACP,DP1.4 MST 一进三出多屏扩展方案评估
笔记·硬件架构·视频·mst·国产芯片
划破黑暗的第一缕曙光14 小时前
[C++]:2.类和对象(下)
c++·类和对象·对象·类