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

如果镜像源还是不行,可以手动下载:

  1. 手动下载 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
  2. 放置文件
    • 将下载的 ninja-win.zip 放到 E:\YOLO\cpp\vcpkg-master\downloads\
    • 重命名为:ninja-win-1.13.1.zip
  3. 重新运行安装
.\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 预编译版本

  1. 访问 OpenCV官网
  2. 下载 Windows 版本(例如 opencv-4.11.0-windows.exe
  3. 解压到 C:\opencv
  4. 在 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;}

总结建议

  1. 首选方案:使用环境变量设置清华镜像源
  2. 备用方案:手动下载 ninja 等工具
  3. 快速方案:直接下载 OpenCV 预编译版本
  4. 耐心等待:第一次编译 OpenCV 可能需要较长时间

Read more

前端国际化之i18n(VUE项目)

前端国际化之i18n(VUE项目)

解释与说明         i18n,全名是internationalization,称为国际化。         我理解的就四个字:语言转换。         让以其他语言作为母语的人能看懂你的前端中的文字。         我们常用的就是中文简体(zh_CN)与英文(美国)(en_US)的转换。         当然也可以增添中文繁体(zh_TW)等等你想要的其他语言。 缩写的由来 internationalization,首字母 i 和末字母 n 之间有 18 个字母,故缩写为 i18n 。 与之对应的是L10n,本地化,Localization。         最好在项目初期就计划使用国际化,这样相对后期使用会大大减少工作量。 项目使用 安装 1,在你的软件中打开控制台         我使用的是IDEA,其实前端更推荐使用VSCode。 2,进入前端的文件夹 cd web         我的前端的文件夹名称是web,相应变换成你自己命名的前端文件夹名称。 3,使用下载安装命令 npm

By Ne0inhk
Rust与WebAssembly深度实战——将高性能Rust代码运行在浏览器与Node.js

Rust与WebAssembly深度实战——将高性能Rust代码运行在浏览器与Node.js

Rust与WebAssembly深度实战——将高性能Rust代码运行在浏览器与Node.js 一、学习目标与重点 1.1 学习目标 1. 理解WebAssembly基础:深入掌握WebAssembly(Wasm/Wasmtime)的核心定义、运行机制、与JavaScript的性能对比 2. 掌握Rust到Wasm的编译:熟练使用wasm-pack、cargo-web等工具链,完成Rust代码到Wasm模块的编译、打包、优化 3. 精通Rust与JavaScript交互:实现双向交互(Rust调用JS函数、JS调用Rust函数),处理复杂数据类型(数组、对象、字符串),管理内存(Wasm线性内存的分配与释放) 4. 开发真实Wasm应用:编写浏览器端高性能任务(Canvas图像滤镜、WebGL计算辅助)、Node.js端计算密集型任务(图像处理、加密解密、数据压缩) 5. 优化Wasm模块:使用wasm-opt工具优化Wasm体积,学习代码分割、懒加载、模块缓存

By Ne0inhk
数据结构堆的深度解析:为什么它是高效处理最值问题的利器

数据结构堆的深度解析:为什么它是高效处理最值问题的利器

前言 在非线性数据结构的家族中,堆是兼具 “完全二叉树特性” 与 “最值优先级” 的高效工具 —— 它以数组为物理载体,却暗藏树形逻辑,能在 O (1) 时间获取最值,O (logN) 时间完成插入删除,成为解决排序、Top-K 等经典问题的 “一把好手”。 📚 初阶数据结构 【 时间复杂度+空间复杂度 】 【 顺序表 】 【 单链表 】 【 链表OJ题(上篇)】 【 链表OJ题(下篇)】 【 栈和队列 】 【 栈和队列面试题 】 【 二叉树概念解析 】 目录 一、堆的核心概念与结构特性 1. 堆的定义 2. 核心特性 3. 直观示例 二、堆的实现  1、堆的结构 2、堆的初始化 3、堆的销毁 4、

By Ne0inhk
Spring Boot Web 后端开发注解核心

Spring Boot Web 后端开发注解核心

在 Spring Boot Web 后端开发中,注解(Annotation)是核心,它们极大简化了配置、依赖管理、请求映射、数据持久化等。本文将按照功能分类,详细列出常用注解的作用、使用方式、典型场景,并附带简明代码示例,帮助你全面掌握并灵活运用。 文章目录 * 1. 核心启动与配置注解 * 2. 控制器与请求映射注解 * 3. 依赖注入与组件注册注解 * 4. 数据访问(JPA / Spring Data)注解 * 5. 事务管理注解 * 6. 缓存注解 * 7. 异步与定时任务注解 * 8. 异常处理与控制器增强 * 9. 跨域支持注解 * 10. 条件化配置注解(自动配置相关) * 11. 测试注解 * 12. Lombok 常用注解(简化代码)

By Ne0inhk