DMS游戏活动中心 - 热门活动与福利速递

vcpkg 跨平台的c/c++库包管理工具(以libssh为例)

礼包领取 2025-11-16 23:13:07

‌vcpkg‌是一个由微软开发的开源C/C++库包管理器,支持Windows、Linux和macOS操作系统。

功能:可以自动识别依赖,并进行编译、安装。

例如,libssh库依赖openssl、zlib等。自己编译需要先下载依赖的源码、编译、安装,然后再编译libssh,很麻烦。vcpkg可以自动解决这些问题。

关于vs2022自动识别vcpkg已经编译的包(即无需再配置include、lib等,直接#include)的功能,我没有测试成功,所以创建项目后还是老老实实配置。

0、一些教程和说明

vcpkg的基本使用 C++包管理 vcpkg 教程(基础) - 知乎

vcpkg目录里可以定时清理的文件夹:

downloads——下载的压缩包(自动下载的,或者网速太慢自己下载后放进去的)。压缩包有两种:

一种是工具类的(可执行程序如7zip.exe),会自动解压在downloads/tools里

一种是源码类的(就是要编译的程序源文件),会自动解压在buildtrees里(buildtrees/***/src/***.clean目录里)

buildtrees——要编译的源文件

packages——编译得到的各个库的文件,如bin、include、lib等

packages里是每个单独的库文件(各是各的)。可以从这里把编译好的捞出来,放到自己喜欢的地方。

installed 里是所有的库文件(全部混在一起),这也是最终的地方。

因此,vcpkg会越来越大,不建议装到C盘。

1、安装vcpkg

1.1 确认平台已经安装了编译器

Windows:MSVC(安装Visual Studio,自带MSVC编译器)

Linux:GCC(命令行gcc --version,出现版本则表明已安装)

macOS:Clang

1.2 Windows安装vcpkg

在想要安装的地方(建议D盘根目录),按Shift键+鼠标右键,在此处打开PowerShell窗口

git clone https://github.com/microsoft/vcpkg.git

执行脚本,会自动下载vcpkg.exe到D:/vcpkg中。注意clone下来的文件夹别动,否则使用时会有错误,不可以认为只需要vcpkg.exe就可以。

cd vcpkg

.\bootstrap-vcpkg.bat

添加进系统环境变量,以便终端识别vcpkg.exe。

1.3 Ubuntu安装vcpkg

自行deepseek,不再赘述了。

2、Windows编译安装libssh

终端中输入,注意默认安装x86版本,如需x64必须指定。

vcpkg install openssl:x64-windows

Downloading 如果很慢,自己根据链接下载压缩包,放到D:\vcpkg\downloads里,重新执行上述命令。

实战案例 cmake识别不到vcpkg安装的包的解决(以libssh为例) - 夕西行 - 博客园