C++包管理工具vcpkg配置国内镜像源的操作流程

 更新时间:2025年11月21日 09:01:27   作者:学亮编程手记  
这篇文章主要介绍了如何配置国内镜像源来使用vcpkg管理C++包,包括使用环境变量、修改配置文件、手动下载工具和使用预编译二进制文件等方法,并提供了一个完整的解决方案和分步安装策略,需要的朋友可以参考下

第一部分:配置国内镜像源

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 预编译版本

  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>

int main() {
    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);
    
    return 0;
}

第六部分:验证安装

安装成功后,创建测试文件:

// test_opencv.cpp
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    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);
    
    return 0;
}

总结建议

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

以上就是C++包管理工具vcpkg配置国内镜像源的操作流程的详细内容,更多关于C++ vcpkg配置国内镜像源的资料请关注脚本之家其它相关文章!

相关文章

  • C语言 指针数组进阶详解

    C语言 指针数组进阶详解

    在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型、指向相同数据类型的指针变量。指针数组比较适合用来指向若干个字符串,使字符串处理更加方便、灵活
    2022-02-02
  • 实例讲解C++设计模式编程中State状态模式的运用场景

    实例讲解C++设计模式编程中State状态模式的运用场景

    这篇文章主要介绍了实例讲解C++设计模式编程中State状态模式的运用场景,文章最后的适用性部分则介绍了一些State模式善于处理的情况,需要的朋友可以参考下
    2016-03-03
  • C语言实现日志备份守护进程的示例详解

    C语言实现日志备份守护进程的示例详解

    这篇文章主要为大家详细介绍了如何使用C语言开发一个简单的日志备份守护进程,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • C++超详细讲解运算符重载

    C++超详细讲解运算符重载

    本文包括了对C++类的6个默认成员函数中的赋值运算符重载和取地址和const对象取地址操作符的重载。运算符是程序中最最常见的操作,例如对于内置类型的赋值我们直接使用=赋值即可,因为这些编译器已经帮我们做好了,但是对象的赋值呢?能直接赋值吗
    2022-06-06
  • C 语言条件运算符详细讲解

    C 语言条件运算符详细讲解

    本文主要介绍C语言中的条件运算符,并提供示例代码以便大家学习参考,希望能帮助学习 C语言的同学
    2016-07-07
  • c++ stack容器适配器的使用

    c++ stack容器适配器的使用

    在C++中,std::stack是一个标准模板库中的容器适配器,它提供了一种后进先出的数据结构,本文主要介绍了c++ stack容器适配器的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • c语言中if 语句的作用范围示例代码

    c语言中if 语句的作用范围示例代码

    if语句的作用范围只有紧跟if的第一条表达式,下面的示例将告诉你,感兴趣的朋友可以了解下
    2013-09-09
  • c++栈内存和堆内存的基本使用小结

    c++栈内存和堆内存的基本使用小结

    本文主要介绍了c++栈内存和堆内存的基本使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • 用C# 实现鼠标框选效果的实现代码

    用C# 实现鼠标框选效果的实现代码

    本篇文章是对用C#实现鼠标框选效果的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c语言函数栈帧的创建和销毁过程详解

    c语言函数栈帧的创建和销毁过程详解

    我们知道c语言中函数都是被调用的,main函数里面能调用其他函数,其实main函数也是被别的函数调用的,下面通过本文给大家分享c语言函数栈帧的创建和销毁过程,一起看看吧
    2021-08-08

最新评论