C++ 包管理工具 vcpkg 配置国内镜像源
第一部分:配置国内镜像源
1.1 方法一:使用环境变量(推荐)
设置镜像源环境变量:
# 设置清华镜像源$env:VCPKG_DOWNLOAD_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/github-release/ninja-build/ninja/"$env:X_VCPKG_ASSET_SOURCES="x-azurl,https://mirrors.tuna.tsinghua.edu.cn/vcpkg/assets/"# 或者使用中科大镜像源$env:VCPKG_DOWNLOAD_MIRROR="https://mirrors.ustc.edu.cn/github-release/ninja-build/ninja/"$env:X_VCPKG_ASSET_SOURCES="x-azurl,https://mirrors.ustc.edu.cn/vcpkg/assets/"1.2 方法二:修改 vcpkg 配置文件
在 vcpkg 根目录创建或修改 triplets\x64-windows.cmake 文件,添加:
# 在文件末尾添加以下内容 set(VCPKG_DOWNLOAD_MIRROR "https://mirrors.tuna.tsinghua.edu.cn/github-release/ninja-build/ninja/") set(X_VCPKG_ASSET_SOURCES "x-azurl,https://mirrors.tuna.tsinghua.edu.cn/vcpkg/assets/") 第二部分:完整的解决方案
2.1 一次性解决方案
# 1. 设置镜像源环境变量$env:VCPKG_DOWNLOAD_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/github-release/ninja-build/ninja/"$env:X_VCPKG_ASSET_SOURCES="x-azurl,https://mirrors.tuna.tsinghua.edu.cn/vcpkg/assets/"# 2. 设置代理(如果你有代理的话)# $env:HTTP_PROXY="http://127.0.0.1:10809"# $env:HTTPS_PROXY="http://127.0.0.1:10809"# 3. 先单独安装 ninja(解决你当前的错误).\vcpkg.exe install ninja:x64-windows # 4. 然后再安装 opencv4.\vcpkg.exe install opencv4:x64-windows 2.2 永久配置方案
创建 set-mirror.ps1 脚本文件:
# set-mirror.ps1 - 设置vcpkg镜像源echo"设置vcpkg国内镜像源..."# 设置环境变量(当前会话有效)$env:VCPKG_DOWNLOAD_MIRROR="https://mirrors.tuna.tsinghua.edu.cn/github-release/ninja-build/ninja/"$env:X_VCPKG_ASSET_SOURCES="x-azurl,https://mirrors.tuna.tsinghua.edu.cn/vcpkg/assets/"# 设置HTTP代理(如果有的话,取消注释并修改)# $env:HTTP_PROXY="http://127.0.0.1:10809"# $env:HTTPS_PROXY="http://127.0.0.1:10809"echo"镜像源设置完成!"echo"VCPKG_DOWNLOAD_MIRROR = $env:VCPKG_DOWNLOAD_MIRROR"echo"X_VCPKG_ASSET_SOURCES = $env:X_VCPKG_ASSET_SOURCES"# 测试下载.\vcpkg.exe search opencv4 第三部分:手动下载解决方案
3.1 手动下载 ninja
如果镜像源还是不行,可以手动下载:
- 手动下载 ninja:
- 访问:
https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-win.zip - 或者从国内镜像:
https://mirrors.tuna.tsinghua.edu.cn/github-release/ninja-build/ninja/v1.13.1/ninja-win.zip
- 访问:
- 放置文件:
- 将下载的
ninja-win.zip放到E:\YOLO\cpp\vcpkg-master\downloads\ - 重命名为:
ninja-win-1.13.1.zip
- 将下载的
- 重新运行安装:
.\vcpkg.exe install opencv4:x64-windows 第四部分:分步安装策略
由于 OpenCV 依赖很多,建议分步安装:
# 1. 先安装基础依赖.\vcpkg.exe install zlib:x64-windows .\vcpkg.exe install libjpeg-turbo:x64-windows .\vcpkg.exe install libpng:x64-windows .\vcpkg.exe install libwebp:x64-windows # 2. 安装编译工具.\vcpkg.exe install ninja:x64-windows # 3. 安装其他依赖.\vcpkg.exe install protobuf:x64-windows .\vcpkg.exe install flatbuffers:x64-windows # 4. 最后安装 opencv.\vcpkg.exe install opencv4:x64-windows 第五部分:使用预编译二进制文件
如果编译时间太长,可以考虑使用预编译的 OpenCV:
5.1 直接下载 OpenCV 预编译版本
- 访问 OpenCV官网
- 下载 Windows 版本(例如
opencv-4.11.0-windows.exe) - 解压到
C:\opencv - 在 Visual Studio 中手动配置
5.2 手动配置 OpenCV
// 简单的测试程序#include<opencv2/opencv.hpp>#include<iostream>intmain(){ std::cout <<"手动配置OpenCV测试"<< std::endl;// 创建一个简单的图像 cv::Mat image(300,400, CV_8UC3, cv::Scalar(100,150,200)); cv::circle(image, cv::Point(200,150),50, cv::Scalar(0,0,255),-1); cv::imshow("手动配置测试", image); cv::waitKey(0);return0;}第六部分:验证安装
安装成功后,创建测试文件:
// test_opencv.cpp#include<opencv2/opencv.hpp>#include<iostream>intmain(){ std::cout <<"OpenCV安装测试"<< std::endl; std::cout <<"OpenCV版本: "<< CV_VERSION << std::endl;// 测试基本功能 cv::Mat image = cv::imread("test.jpg");if(image.empty()){ std::cout <<"创建测试图像..."<< std::endl; image = cv::Mat(400,600, CV_8UC3, cv::Scalar(50,100,150)); cv::circle(image, cv::Point(300,200),80, cv::Scalar(0,255,0),-1); cv::putText(image,"OpenCV Works!", cv::Point(150,100), cv::FONT_HERSHEY_SIMPLEX,1.2, cv::Scalar(255,255,255),2);} cv::imshow("OpenCV测试", image); cv::waitKey(0);return0;}总结建议
- 首选方案:使用环境变量设置清华镜像源
- 备用方案:手动下载 ninja 等工具
- 快速方案:直接下载 OpenCV 预编译版本
- 耐心等待:第一次编译 OpenCV 可能需要较长时间