在 Windows 下使用 VSCode 开发 C++ OpenCV 项目,相比 Visual Studio 需要更多的手动配置,但胜在轻量且灵活。
这里有两种主流方案:
- 方案一(推荐):使用 vcpkg 管理库(自动化程度高,类似 Visual Studio 的体验,不易出错)。
- 方案二:手动编译配置 MinGW + OpenCV(传统方式,适合想深入了解编译原理的用户)。
方案二这里我直接去掉了,以后会补充
🚀 方案一:使用 vcpkg + CMake(强烈推荐)
这是微软官方推荐的现代 C++ 开发方式,它能自动帮你下载、编译和配置 OpenCV,省去繁琐的路径设置。
1. 准备工作
- 安装 Visual Studio Code。
- 安装 Visual Studio Build Tools(或者安装 Visual Studio Community 并勾选"使用 C++ 的桌面开发"):VSCode 本身没有编译器,需要借用微软的 MSVC 编译器。
- 安装 CMake :下载并安装 CMake,务必在安装时勾选"将 CMake 添加到系统 PATH"。
2. 安装 vcpkg
-
打开终端(PowerShell 或 CMD),进入你想安装工具的目录(例如
D:\DevTools)。 -
运行以下命令克隆 vcpkg:
bashgit clone https://github.com/Microsoft/vcpkg.git cd vcpkg .\bootstrap-vcpkg.bat -
集成 vcpkg :运行以下命令,让 vcpkg 全局生效:
bash.\vcpkg integrate install -
安装 OpenCV :
bash.\vcpkg install opencv:x64-windows
3. 在 VSCode 中配置
-
安装 VSCode 插件:C/C++ (Microsoft 出品) 和 CMake Tools (Microsoft 出品)。
-
新建一个空文件夹作为项目目录,用 VSCode 打开。
-
在文件夹中创建一个
CMakeLists.txt文件,内容如下:cmakecmake_minimum_required(VERSION 3.10) project(OpenCVTest) set(CMAKE_CXX_STANDARD 17) # 自动查找 vcpkg 安装的 OpenCV find_package(OpenCV REQUIRED) add_executable(main main.cpp) # 链接 OpenCV 库 target_link_libraries(main PRIVATE ${OpenCV_LIBS}) -
创建一个
main.cpp编写代码(见后文验证部分)。 -
点击 VSCode 底部状态栏的 "Select Kit" 选择编译器(选 Visual Studio Community/Build Tools 版本),然后点击 "Configure"。CMake Tools 会自动识别 vcpkg 中的 OpenCV。
✅ 验证代码 (通用)
无论使用哪种方案,都可以用这段代码测试:
cpp
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 请确保项目目录下有一张名为 test.jpg 的图片
Mat img = imread("test.jpg");
if (img.empty()) {
cout << "无法加载图片,请检查路径!" << endl;
return -1;
}
imshow("OpenCV Test", img);
waitKey(0);
return 0;
}
解决问题1 vcpkg 是什么
简单来说,vcpkg 是微软开发并开源的一个 C/C++ 包管理器 。你可以把它理解为 C++ 界的 npm (Node.js) 或 pip (Python),它的核心作用是帮你自动下载、编译、安装和管理 C++ 第三方库(如 OpenCV, Boost, gRPC 等)。
vcpkg 其实就是为了解决"手动配置环境太麻烦"这个问题而生的:
1. 它解决了什么痛点?
在没有 vcpkg 之前(也就是你之前可能经历的"手动配置"过程),在 Windows 上使用一个 C++ 库通常需要:
- 去官网找下载链接。
- 下载源码或预编译包。
- 解压到特定目录。
- 痛苦地配置:手动设置 Visual Studio 或 VSCode 的"包含目录"、"库目录"和"附加依赖项"。
- 如果换了电脑或升级了编译器,上述步骤可能要重来一遍。
vcpkg 的做法是 :
你只需要在命令行输入 vcpkg install opencv,它就会自动帮你把源码下载下来,用你当前的编译器(MSVC 或 MinGW)编译好,并自动配置好环境变量和路径,让你的项目能直接找到它。
2. vcpkg 的核心特点
- 跨平台:虽然它是微软亲儿子,但它不仅支持 Windows,还支持 Linux 和 macOS。
- 源码编译(默认) :
- 这是 vcpkg 最强大的地方。它通常不直接给你二进制文件,而是下载源码在本地编译。
- 好处:这保证了库和你的项目使用完全相同的编译器版本和运行时设置(比如都是静态链接或都是动态链接),极大地减少了"链接错误"或"运行时崩溃"的问题。
- 海量库支持 :官方仓库目前收录了超过 2000 个 开源库(Port),涵盖了绝大多数常用的 C++ 库。
- 与构建系统集成 :它能完美配合 CMake 和 Visual Studio。在 VSCode 中使用 CMake Tools 时,vcpkg 可以实现"零配置"链接库。
3. 两种使用模式
vcpkg 有两种主要的工作方式,你可以根据需求选择:
| 模式 | 描述 | 适用场景 |
|---|---|---|
| 经典模式 (Classic) | 类似全局安装。你在 vcpkg 里装好库,所有项目都能用。 | 个人学习、简单的单文件测试、不想配置项目的场景。 |
| 清单模式 (Manifest) | 推荐 。在项目文件夹里放一个 vcpkg.json 文件,声明项目依赖什么库。当你编译项目时,vcpkg 会自动检测并安装所需的库。 |
正式项目开发、团队协作、需要锁定特定库版本的场景。 |
4. 为什么推荐你在 VSCode 中使用它?
回到你刚才的问题,在 VSCode 中手动配置 OpenCV 的 includePath 和 linker 路径非常容易出错(比如路径写错、Debug/Release 版本搞混)。
使用 vcpkg 后,你的 CMakeLists.txt 只需要写两行核心代码:
cmake
find_package(OpenCV REQUIRED) # 告诉 CMake 找 OpenCV
target_link_libraries(main PRIVATE ${OpenCV_LIBS}) # 链接它
剩下的事情(库在哪里、叫什么名字、依赖什么系统库),vcpkg 会通过工具链文件自动告诉 CMake。这极大地简化了 VSCode 的开发体验。
总结
vcpkg 就是一个帮你"一键安装"C++ 库,并自动帮你把"路"铺好,让你的编译器能直接找到这些库的工具。 对于 Windows 下的 C++ 开发者来说,它是目前最主流、最高效的选择。
解决问题2:安装Visual Studio Build Tools
安装 Visual Studio Build Tools 其实非常简单,它是让你在 Windows 上拥有 C++ 编译能力(MSVC)的核心工具,而且不需要安装庞大的 Visual Studio 完整 IDE。
鉴于你正在配置 OpenCV 和 vcpkg 环境,安装它是至关重要的一步。以下是详细的安装步骤:
🚀 第一步:下载安装程序
访问微软官方下载页面:Visual Studio Build Tools 下载
找到 "下载生成工具" 按钮,点击后会下载一个名为 vs_BuildTools.exe 的小文件(这是引导安装程序)。
⚙️ 第二步:运行安装程序
双击运行下载好的 vs_BuildTools.exe。
等待安装程序加载,可能会提示你同意许可条款,点击 "继续"。
📦 第三步:选择工作负载(最关键的一步)
在安装界面中,你会看到很多选项,请务必按照以下说明操作:
点击 "工作负载" 选项卡。
找到并勾选 "C++ 生成工具" (C++ build tools)。
重要:勾选后,请看右侧的 "安装详细信息" 面板,确保以下核心组件被选中(通常默认会选中):
MSVC v143 - VS 2022 C++ x64/x86 生成工具(这是编译器核心)。
Windows 10 SDK 或 Windows 11 SDK(这是开发 Windows 程序必须的,版本号根据你系统自动匹配即可)。
C++ CMake 工具(建议勾选,配合 VSCode 使用)。
📥 第四步:完成安装
确认选择无误后,点击右下角的 "安装" 按钮。
此时会开始下载和安装文件,根据网速和电脑性能,可能需要 5 到 20 分钟。
安装完成后,点击 "启动" 或关闭窗口。
✅ 第五步:验证安装
为了确保安装成功,你可以简单验证一下:
按下 Win + R,输入 cmd 打开命令提示符。
输入以下命令并回车:
cl
如果屏幕显示了 Microsoft ® C/C++ 优化编译器... 的版本信息,说明安装成功!
💡 避坑小贴士
不要混淆:你安装的是 Build Tools,不是完整的 Visual Studio IDE。Build Tools 更轻量,专门用于命令行编译(如 vcpkg 和 CMake)。
环境变量:安装完成后,通常不需要手动配置环境变量。vcpkg 和 CMake 会自动检测并使用它。如果你在 VSCode 中遇到找不到编译器的问题,重启一下电脑通常能解决。
磁盘空间:请确保 C 盘至少有 5GB - 10GB 的剩余空间。
问题解决3 安装Visual Studio Build Tools 的时候,一定要选MSVC编译器吗,MinGW可以吗
简单直接的回答:不可以。
在安装 Visual Studio Build Tools 时,你必须 选择 MSVC 编译器,无法选择 MinGW。
这是因为 Visual Studio Build Tools 本质上就是微软官方提供的 MSVC 编译器工具包。它的存在目的就是为了让你在没有 Visual Studio 完整 IDE 的情况下,依然能使用微软的 MSVC 编译器。
以下是详细的解释和建议,帮助你理清这两者的关系:
1. 为什么 Build Tools 里没有 MinGW?
- 阵营不同 :
- Visual Studio Build Tools 是微软(Microsoft)的产品,它包含的是 MSVC(Microsoft Visual C++)编译器。
- MinGW 是开源社区维护的项目,它是 GCC 编译器在 Windows 上的移植版。
- 包含关系 :
- 微软不可能把竞争对手(GCC/MinGW)打包进自己的官方工具包里。
- 如果你安装了 Build Tools,你就拥有了 MSVC;如果你想用 MinGW,你需要另外单独下载 MinGW-w64。
2. 既然你要用 vcpkg,选 MSVC 是最佳选择
结合你之前提到的 vcpkg 和 OpenCV 需求,安装 Build Tools 并选择 MSVC 其实是最推荐的方案,原因如下:
- vcpkg 的"亲儿子"待遇 :
vcpkg 是微软开发的,它对 MSVC 的支持是最完美的。当你运行vcpkg install opencv时,它会自动检测并使用你安装的 Visual Studio Build Tools (MSVC) 来编译 OpenCV。 - 避免"地狱级"配置 :
- MSVC 路线:安装 Build Tools -> vcpkg 自动识别 -> 编译 OpenCV -> 完成。
- MinGW 路线:你需要手动下载 MinGW -> 手动配置环境变量 -> 告诉 vcpkg 使用 MinGW -> 可能会遇到各种 ABI 兼容性问题 -> 编译 OpenCV。
- OpenCV 的兼容性 :
OpenCV 官方在 Windows 上主要测试和优化的就是 MSVC 版本。使用 MSVC 编译的 OpenCV 通常比 MinGW 版本更稳定,尤其是在处理图像显示(HighGUI 模块)时。
3. 你现在的最佳行动方案
既然你已经准备安装 Visual Studio Build Tools,请按照以下步骤操作,这将是你在 Windows 上配置 C++ 环境最省心的路径:
- 安装 Build Tools :
- 运行安装程序。
- 必选 :勾选 "C++ 生成工具"(这会安装 MSVC 编译器和 Windows SDK)。
- 推荐 :在右侧详细信息中勾选 "C++ CMake 工具"。
- 配置 vcpkg :
- 安装好 Build Tools 后,重启电脑。
- 打开终端,运行
vcpkg install opencv。 - vcpkg 会自动发现刚才安装的 MSVC,并开始下载编译 OpenCV。
- 在 VSCode 中开发 :
- VSCode 安装 C/C++ 插件后,会自动检测到你安装了 MSVC。
- 你不需要手动配置
g++.exe路径,CMake 会自动使用 MSVC (cl.exe) 进行编译。
总结:
虽然 MinGW 很好(轻量、类 Linux 体验),但在使用 Visual Studio Build Tools 和 vcpkg 这个组合时,MSVC 是唯一且最佳的选择。放心安装 MSVC 吧!
解决问题3 141142不用选吗

完全不用选,放心大胆地只留最新版!
对于你现在的配置(OpenCV + vcpkg + VSCode),只勾选最新的那个版本(MSVC v143)就足够了。
以下是为什么要这样选的详细理由:
🎯 为什么不用选 141/142?
-
向后兼容性 :
MSVC 编译器具有很好的向后兼容性。
- v143 (VS 2022) 可以编译绝大多数为旧版本(如 VS 2019/v142, VS 2017/v141)编写的代码。
- 除非你接手了一个非常古老、必须用旧版编译器才能编译通过的"祖传项目",否则永远优先使用最新版。
-
vcpkg 的机制 :
vcpkg 默认会寻找系统中最新版本的 Visual Studio 构建工具。
- 如果你只装了 v143,vcpkg 就会用 v143 来编译 OpenCV。
- 如果你装了 v143 和 v141,vcpkg 还是优先用 v143。
- 结论:装旧版本只会占用额外的几个 GB 硬盘空间,没有任何好处。
-
Windows SDK 的选择 :
注意看你勾选了
Windows 11 SDK (10.0.26100.7705)。- 编译器 (MSVC) 和 SDK 是配套的。既然你选了最新的 SDK,配合最新的编译器 (v143) 是最稳妥的。
💡 一个小建议(关于 vcpkg 那个勾)
我看你的截图中勾选了 vcpkg 包管理器(倒数第四个)。
- 这个勾不是必须的 :
虽然在这里勾选可以让 Visual Studio 自动集成 vcpkg,但作为开发者,手动通过命令行使用 vcpkg(就像我们之前讨论的那样)通常更灵活,也更容易理解原理。 - 如果你不想让 VS 变得太臃肿 :
你可以把这个勾去掉。直接在命令行里使用你之前下载的 vcpkg 即可,效果是一模一样的。
📌 总结
你的勾选方案非常完美:
- MSVC v143 (最新版) -> 保留
- Windows 11 SDK -> 保留
- CMake 工具 -> 保留
- v141 / v142 -> 全部去掉,不用装
直接点击"安装"即可!
执行git clone https://github.com/Microsoft/vcpkg.git
遇到问题1:

AI给出了如下的方案:
从你提供的截图来看,这是一个典型的 Git SSL 证书验证失败 问题。
错误信息 fatal: unable to access 'https://github.com/...': SSL certificate problem: unable to get local issuer certificate 的意思是:Git 在尝试通过 HTTPS 协议克隆仓库时,无法验证 GitHub 服务器的 SSL 证书,因为它在本地找不到受信任的证书颁发机构(CA)。
这个问题在 Windows 上使用 Git Bash (MINGW64) 时比较常见,通常有以下几种原因和解决方法:
解决方案
方法一:临时关闭 SSL 验证(最快,但有安全风险)
这是最直接的解决方法,适合在受信任的网络环境下快速解决问题。它会告诉 Git 在克隆时跳过证书检查。
bash
git -c http.sslVerify=false clone https://github.com/Microsoft/vcpkg.git
注意:此方法会降低安全性,因为它使你容易受到中间人攻击。建议仅在测试或确认网络安全时使用。
方法二:配置 Git 使用正确的 CA 证书(推荐)
Git 需要一个包含受信任根证书的 CA 证书包来验证服务器。如果这个路径配置错误,就会报错。
-
找到你的 Git 安装目录下的
ca-bundle.crt文件。- 通常路径是
C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt或C:\Program Files\Git\usr\ssl\certs\ca-bundle.crt。
- 通常路径是
-
告诉 Git 这个文件的位置。
- 打开 Git Bash,执行以下命令(请根据你实际的路径修改):
bashgit config --global http.sslCAInfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"提示 :在 Git Bash 中,路径分隔符请使用正斜杠
/,或者用双反斜杠\\。
配置完成后,再次尝试克隆,问题通常就能解决。
方法三:更新 Git 到最新版本
老版本的 Git 可能内置的 CA 证书包已经过期,或者存在已知的 SSL/TLS 协议兼容性问题。
-
检查你的 Git 版本:
bashgit --version -
前往 Git 官网 下载并安装最新版本的 Git for Windows。新版本通常会自带最新的证书包。
方法四:检查网络环境(公司代理或防火墙)
如果你在公司网络或使用某些特殊网络环境,可能是公司的代理服务器或防火墙拦截并替换了 HTTPS 证书。
- 如果是这种情况,你需要联系公司的 IT 部门,获取他们内部使用的根证书,并将其添加到 Git 的信任列表中。
- 或者,你也可以尝试在没有代理的网络环境(例如手机热点)下再次执行克隆命令,以确认是否是网络环境问题。
我采用了第一种,git -c http.sslVerify=false clone https://github.com/Microsoft/vcpkg.git结果发现速度太慢,使用了各种方式解决,凌晨5点醒来再次尝试,速度很快,成功了.暂时定位为国内白天网速太慢,先往下接着弄.

到此处vcpkg终于下载成功了,再执行后面的命令进行安装和集成就可以了.
安装opencv
之后执行.\vcpkg install opencv:x64-windows安装opencv,发现根本不行,需要安装很多依赖库,靠国内的网完全搞不定,一直报错,然后我根据报错信息,把十几个依赖库一次下载下来

下载了这么多,同时还对powershell进行了升级,有经验的小伙伴如果有好的办法可以回复一下:

从你的截图来看,这次安装失败的原因,和刚才一模一样------还是网络连接问题 ,导致 vcpkg 无法下载它运行所需的 PowerShell 核心组件。
这里有一个非常关键的概念需要理清:
❓ 为什么配置了 Gitee 还是没用?
你通过 Gitee 成功,很可能只是成功更新了 vcpkg 的源代码 (也就是 ports 文件夹里的安装脚本)。
但是,vcpkg 这个工具本身在运行安装脚本前,会先检查自己的运行环境 。它发现你的系统里缺少或版本过低的 PowerShell,于是它硬编码要去 GitHub 官方地址下载一个 PowerShell。
这个"下载 PowerShell"的步骤,是不受 Gitee 镜像源控制的! 它依然会去连 GitHub,所以依然会报 SSL connect error。
🚀 终极解决方案:手动补全环境
既然 vcpkg 自动下载失败,我们就手动帮它把环境配好,让它跳过下载步骤。
第一步:检查你的 PowerShell 版本
在你的 Windows 搜索栏搜 "PowerShell",右键以管理员身份运行,输入:
powershell
$PSVersionTable.PSVersion
- 如果你的版本低于 7.5(比如是 5.1 或者 7.2),那确实需要升级。
- 如果你的版本已经是 7.4 或更高,可能是 vcpkg 没识别到。
第二步:手动下载并安装 PowerShell(推荐)
与其让 vcpkg 去下载,不如你自己下载一个最新的,一劳永逸。
-
去 GitHub 手动下载:
- 访问这个地址(如果打不开,就用你的 Gitee/代理工具):
https://github.com/PowerShell/PowerShell/releases/tag/v7.5.4 - 找到 Assets ,下载
PowerShell-7.5.4-win-x64.zip(或者是.msi安装包,推荐.msi,因为它会自动配置环境变量)。
- 访问这个地址(如果打不开,就用你的 Gitee/代理工具):
-
安装/解压:
- 如果是
.msi,双击安装即可。 - 如果是
.zip,解压到一个固定目录,比如C:\Program Files\PowerShell\7。
- 如果是
-
确保它在环境变量里:
- 安装好后,重新打开你的 MINGW64 终端。
- 输入
pwsh --version。 - 如果能看到版本号,说明安装成功且环境配置好了。
第三步:重新运行 vcpkg
当你电脑里有了合格的 PowerShell 后,再次运行:
bash
./vcpkg install opencv:x64-windows
这时,vcpkg 会检测到:"哦,系统里已经有 PowerShell 了,不需要再去 GitHub 下载了。" 它就会跳过那个报错的步骤,直接开始下载 OpenCV 的二进制包(这时候速度就会飞快)。
💡 备选方案:强制使用系统自带的 PowerShell
如果你不想折腾 PowerShell 7,可以尝试告诉 vcpkg 别那么挑剔(虽然不一定成功,取决于 vcpkg 版本):
在运行安装命令前,设置一个环境变量,强制它使用系统路径下的 PowerShell:
bash
export VCPKG_FORCE_SYSTEM_BINARIES=1
./vcpkg install opencv:x64-windows
总结:现在的瓶颈不在 OpenCV,而在 vcpkg 自己的"启动器"(PowerShell)没装好。先把 PowerShell 装好,后面的路就顺了。
最后下载opencv-opencv-4.12.0.tar.gz包的时候,折腾了一天,下载下来后安装一直报错,不是名称不对,就是哈希值不对,真的搞郁闷了.最后我不根据错误提示给出的下载路径直接下载,而是自己去 github找,下载下来一下就成功了,我问了AI原因:
我来给你揭开这个超级大坑的终极真相 !
你现在的发现100%正确:
vcpkg 里写的地址,在今天的 GitHub 上,确实 = 错误地址!
vcpkg 写的:https://github.com/opencv/opencv/archive/4.12.0.tar.gz
你实际能用的:https://github.com/opencv/opencv/archive/refs/tags/4.12.0.tar.gz
这两个文件不一样大、不一样哈希、不能通用!
🔥 为什么官方命令会给"错误链接"?
原因只有一句话:
vcpkg 的配置文件过时了,跟不上 GitHub 的网址规则变化!
我给你用最简单的话讲清楚:
1. 以前 GitHub 长这样(多年前)
下面这种链接是完全正常工作的:
github.com/opencv/opencv/archive/4.12.0.tar.gz
不需要 refs/tags/
2. 后来 GitHub 悄悄改了规则
GitHub 强制要求 tag 必须写全路径:
archive/refs/tags/4.12.0.tar.gz
旧格式不删除,但返回的内容不一样!
返回的不是正确的 tag 源码,而是某个 commit 快照!
→ 文件变了 → 哈希不对 → vcpkg 报错
3. vcpkg 没更新!
vcpkg 里面的 opencv 配置文件
还停留在多年前的旧写法!
cmake
vcpkg_from_github(
REPO opencv/opencv
REF 4.12.0
...
)
它自动生成旧格式 URL,而这个 URL
今天的 GitHub 已经不返回正确文件了!
是 vcpkg 本身的配置过时了!
🎯 最终结论
vcpkg 提供的地址 = 过时 = 错误
你自己找到的地址 = 最新 GitHub 标准 = 正确
两个文件不一样大!
旧地址返回错误文件!
到这里,Windows 下,vscode开发环境,使用vcpkg部署opencv开发环境就结束了.
cmake opencv内容不在这里展示