vcpkg使用教程

一、简介

vcpkg是由微软官方开发并维护的跨平台C/C++包管理器,可以把他理解为C/C++领域的pip(Python)、npm(JavaScript)、maven(Java) ------ 专门用来解决C/C++第三方库的下载、编译、安装和版本管理

支持 Windows、Linux、macOS 等主流操作系统,也兼容 Visual Studio、Clang、GCC 等主流编译器,是目前 C/C++ 开发中最常用的包管理工具之一。

二、安装

源码路径:GitHub - microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS

安装好Visual Studio , 并选择上英文语言包:

但是下载安装会存在比较慢的情况,这里需要给vcpkg配置镜像源:

常见镜像源配置方法如下:

1、Windows 下环境变量

1.1、命令修改

bash 复制代码
# 设置清华镜像源
$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/"

光配置了vcpkg的国内镜像源,但是vcpkg,很多资源需要从github上下载,但是访问github又不太稳定,因此这里提供了一个简单的包,提供了VTK, OPENCV ,PCL等库

通过网盘分享的文件:vcpkg-export.7z

链接: https://pan.baidu.com/s/1BEB7v97nxr92eg6EjTDkgQ?pwd=8888 提取码: 8888

将下载好的包解压后,配置到环境变量中:

1.2、在vcpkg 安装的路径下修改配置文件

vcpkg安装目录下修改triplets\x64-windows.cmake文件:

bash 复制代码
# 在文件末尾添加以下内容 
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/")

三、使用

1、搜索需要安装的第三方库

bash 复制代码
vcpkg search <第三方包名>

2、安装第三方库

bash 复制代码
vcpkg install <第三方包名>
bash 复制代码
.\vcpkg install pcl:x64-windows --debug

3、Vs中集成vcpkg

bash 复制代码
vcpkg.exe integrate install // 将vcpkg下载的包配置到环境变量中
相关推荐
kk”20 小时前
C++智能指针
开发语言·c++
清酒难咽20 小时前
算法案例之回溯法
c++·经验分享·算法
小王努力学编程20 小时前
LangChain——AI应用开发框架(核心组件2)
linux·服务器·c++·人工智能·python·langchain·信号
CC.GG21 小时前
【C++】异常
java·jvm·c++
王老师青少年编程21 小时前
2023年12月GESP真题及题解(C++八级): 大量的工作沟通
c++·题解·真题·gesp·csp·八级·大量的工作沟通
郝学胜-神的一滴21 小时前
深入理解TCP协议:数据格式与核心机制解析
linux·服务器·网络·c++·网络协议·tcp/ip
小此方21 小时前
Re:从零开始的 C++ STL篇(三)string的疑难问题详细解析:深拷贝,写时拷贝,三个swap
开发语言·c++
程序员敲代码吗21 小时前
嵌入式C++开发注意事项
开发语言·c++·算法
君义_noip1 天前
信息学奥赛一本通 1463:门票
c++·算法·哈希算法·信息学奥赛·csp-s
草莓熊Lotso1 天前
Qt 控件美化与交互进阶:透明度、光标、字体与 QSS 实战
android·java·开发语言·c++·人工智能·git·qt