支持的主机
本文档介绍 vcpkg 支持的体系结构和操作系统。
依赖项
vcpkg 还依赖于要安装的一些系统组件,然后才能运行。
若要使用 vcpkg,首先需要在系统上安装一些组件。
- Windows:Visual Studio 2015 或更高版本。
- macOS:Xcode 命令行工具、tar、git、zip、unzip 和 curl。 大多数端口还需要
pkg-config
。 建议通过 Homebrew 安装这些依赖项,例如通过终端命令brew install zip unzip curl pkgconfig
来安装这些依赖项。 - Linux:要使用的 C++ 编译器、tar、git、zip、unzip 和 curl。 大多数端口还需要
pkg-config
。 我们建议使用系统包管理器来安装这些依赖项。- 基于 apt 的平台:
apt install git curl zip unzip pkgconfig
- 基于 rpm 的平台:
dnf install git curl zip unzip pkgconfig
- 基于 pacman 的平台:
base-devel git curl zip unzip tar cmake ninja
- 基于 apt 的平台:
对于 Linux 和 macOS 用户,我们还建议安装以下包:autoconf
、autoconf-archive
、automake
、make
和 libtool
。 虽然不需要,但 vcpkg 中提供的库经常使用这些包。
特选注册表支持级别
支持分为 4 种不同的类别。 它们是:
- 全面支持,并且经过测试
用于定期测试 vcpkg 的特选注册表的配置。 vcpkg 的维护人员和社区可以快速找到并修复这些配置中的问题。 - 全面支持,符合预期
使用与“全面支持,并且经过测试”相同的优先级进行处理但不属于常规测试的配置。 通常,这些配置与其中一个完全测试的配置大致相似。 - 社区支持
vcpkg 的维护人员未主动支持但却具有大量社区投资的配置。 vcpkg 维护人员接受更改来修复这些平台的问题,但不保证这些配置能够正常工作。 vcpkg 团队很想将尽可能多的平台从社区支持转移到完全支持。 - 不支持
已知因某种原因无法正常工作的配置。 通常,不接受仅修复这些平台的 PR。
全面支持,并且经过测试
完全受支持并经过测试的平台包括:
Windows
- 最新的 Windows/Windows Server 版本。 截至撰写本文时,这些版本是 Windows 11 和 Windows Server 2022。
- 截至本文,Visual Studio 2022 版本 17.11 的最新 Visual Studio 更新。
macOS
macOS 旨在跟踪最新版本的 macOS 和现代版本的 XCode 命令行工具。 但是,更新 macOS 计算机是一个手动过程,macOS 经常以破坏 vcpkg 测试的方式来更改内容。 截至撰写本文时,我们将使用:
- macOS 14.5
- XCode 命令行工具 15.3
Linux
- Ubuntu 的最新 LTS 版本,当前为 22.04。
Android
- Linux 64 位 Android NDK 版本 r26d
全面支持,符合预期
Windows
- Windows 8.1 / Windows Server 2016 及更高版本
- Visual Studio 2015 及更高版本
macOS
- 最新版本的 macOS 减去 2 个主要版本。 例如,macOS 的当前版本为 macOS 15 Sequoia,因此我们预计 vcpkg 可追溯到 macOS 13 Ventura。 这是为了使用 Apple 自己对 macOS 的支持进行跟踪。
- 适用于给定版本的 macOS 的 Xcode 命令行工具的当代版本。
Linux
我们打算支持在过去 5 年内发布、仍然受其发行供应商支持并且基于 glibc 的 Linux 的 AMD64 版本。 示例:
- Ubuntu 24.04、22.04 和 20.04 支持规范并在过去 5 年内发布,因此它们有望正常工作。 Ubuntu 18.04 仍然受到 Canonical 的支持,但发布至今已经超过了 5 年,因此我们不再认为它完全受支持。 20.10 比 20.04 更新,但我们并不认为它完全受支持,因为它不再受规范支持。
- Red Hat Enterprise Linux 9 完全受支持。
- CentOS 和 Red Hat Enterprise Linux 8 于 2024 年 5 月 31 日不再受 Red Hat 支持,因为它们发布至今已经超过了 5 年,因此不再受支持。
- CentOS 和 RHEL 7 已不再受 Red Hat 支持,且应该不会正常运行,因为它们发布至今已经超过了 5 年。 Oracle 现在支持的 Oracle Linux 分支仍受 Oracle 支持,但预计仍无法正常工作,因为它发布至今已经超过了 5 年。
- Fedora 40 和 39 完全受支持,但 Fedora 不再支持 Fedora 38。
- Debian 12 “书虫” 和 11 个 “公牛” 都得到了 Debian 的支持, 并在过去 5 年内发布。 Debian 10 “Buster” 于 2024 年 7 月离开了 Debian 项目的支持,因此 vcpkg 不支持。
我们还假设用户的构建系统将与他们使用的 Linux 版本相匹配,并注意确保清单模式 CMake 集成等组件将能够与上述发行版之一附带的这些依赖项的版本一起使用。 截至撰写本文时,这些依赖项版本和关联的发行版包括:
- GCC 9.4.0 (Ubuntu 20.04)
- CMake 3.16.3 (Ubuntu 20.04)
- 忍者 1.10.0 (全部)
- Curl 7.68 (Ubuntu 20.04)
- zip 3.0(全部)
- unzip 6.0(全部)
社区支持
Windows
- Windows 7 / Windows Server 2008 R2 及更高版本
vcpkg.exe
应该适用于 Windows 7 版本,但绝大多数特选注册表都需要 MSYS2 组件,例如 pkg-config
, 不再支持低于 8.1 的 Windows 版本。
- MinGW 或 Clang 生成编译器。
目前 vcpkg 有许多 Visual Studio 假设;特别是我们复制可执行文件的匹配 PDB 的功能当前需要 dumpbin(一个 Visual Studio 组件)。 但是,我们有许多热心的社区成员,他们关心 MinGW 支持,并且确实在工具箱中包含了 MinGW 工具链。
Linux
- 非 AMD64 Linux。 如果能够展示如何交付很有可能在所有 arm64 Linux 硬件上成功运行的二进制文件,那么我们非常希望获得以 arm64 Linux 为目标的人们的帮助。
- 非 glibc Linux。 vcpkg 通常提供的多个工具以二进制形式分发,希望系统 libc 为 glibc。 我们确实提供了一个基于 muslc 的 vcpkg 二进制文件,我们已测试此二进制文件可在 Alpine 上使用,但无法提供许多依赖项(如 CMake)的基于 muslc 的副本。
BSD 或其他 POSIX 系统
在 BSD 目标上,不提供 vcpkg 二进制文件供下载。 相反,启动逻辑将下载 vcpkg 源代码并在本地编译。
依赖项
vcpkg 需要许多不属于操作系统的软件包,并且必须使用包管理器进行安装:
- FreeBSD:
pkg install -y bash cmake curl git ninja zip unzip
- OpenBSD:
pkg_add -Iz bash cmake coreutils curl git ninja zip unzip-6.10-iconv
与在 Linux 上一样,建议还安装一些其他包:
- FreeBSD:
pkg install -y autoconf autoconf-archive gmake pkgconf python
- OpenBSD:
pkg_add -Iz autoconf-2.71 autoconf-archive gmake pkgconf python3
注意事项
- vcpkg 从
PATH
执行unzip
。 最终,这可能会导致 vcpkg 执行提供的操作系统unzip
,尽管已使用包管理器安装了另一个操作系统。 必须将PATH
环境变量配置为首选第三方unzip
而不是操作系统的环境变量,否则 vcpkg 将无法提取其二进制缓存。
不支持
- 32 位 Windows。 针对 x86-windows 或 arm-windows 工作得很好,但 vcpkg 本身有望运行 CMake 等支持工具的 AMD64 副本。
- Visual Studio 2013 或更早版本。
- Windows Vista 或更早版本。
- 早于完全支持类别中的主机的 macOS 或 Linux 主机。