microsoft/vcpkg-tool
GitHub: microsoft/vcpkg-tool
vcpkg-tool 是微软跨平台 C/C++ 包管理器 vcpkg 的核心工具链,提供依赖解析、构建工具编排和 Shell 环境集成能力。
Stars: 556 | Forks: 340
# Vcpkg:概述
[中文总览](https://learn.microsoft.com/zh-cn/vcpkg/get_started/overview)
[Español](https://learn.microsoft.com/es/vcpkg/get_started/overview)
[한국어](https://learn.microsoft.com/ko-kr/vcpkg/get_started/overview)
[Français](https://learn.microsoft.com/fr/vcpkg/get_started/overview)
Vcpkg 帮助你在 Windows、Linux 和 MacOS 上管理 C 和 C++ 库。
该工具和生态系统在不断发展,我们始终感谢您的贡献!
请查看主仓库 https://github.com/microsoft/vcpkg,以获取所有功能讨论、问题跟踪以及对可用库的编辑。
# Vcpkg-tool:概述
本仓库包含原先位于 https://github.com/microsoft/vcpkg 中 "toolsrc" 目录下的内容,以及构建支持。
# vcpkg-artifacts
vcpkg-artifacts 目前处于“预览”阶段——根据反馈,在该工具“正式发布”之前肯定会有所变化。
您可以使用它,但请预先知悉,我们可能会更改格式、命令等。
可以将其视为 C/C++ 项目的清单驱动期望状态配置。
它
- 将自身集成到您的 shell(PowerShell、CMD、bash/zsh)中
- 可以根据随代码提供的清单还原 artifacts
- 提供可发现性接口
## 安装说明
虽然 `vcpkg-artifacts` 在所有平台上的用法相同,但安装/加载/移除过程根据您使用的平台略有不同。
`vcpkg-artifacts` 不会对环境进行任何持久更改,也不会自动将其自身添加到启动环境中。如果您希望它在某个窗口中加载,只需执行该脚本即可。手动将其添加到您的配置文件(profile)中将使其在每个新窗口中加载。
## 安装/使用/移除 | 操作系统 | 安装 | 使用 | 移除 | |-----------------|-----------------------------------------------------|-----------------------|---------------------------------| | **PowerShell/Pwsh** |`iex (iwr -useb https://aka.ms/vcpkg-init.ps1)` |` . ~/.vcpkg/vcpkg-init.ps1` | `rmdir -recurse -force ~/.vcpkg` | | **Linux/OSX** |`. <(curl https://aka.ms/vcpkg-init.sh -L)` |` . ~/.vcpkg/vcpkg-init` | `rm -rf ~/.vcpkg` | | **CMD Shell** |`curl -LO https://aka.ms/vcpkg-init.cmd && .\vcpkg-init.cmd` |`%USERPROFILE%\.vcpkg\vcpkg-init.cmd` | `rmdir /s /q %USERPROFILE%\.vcpkg` | ## 术语表 | 术语 | 描述 | |------------|-----------------------------------------------------| | `artifact` | 存储构建工具或其组件的存档文件(类似 .zip 或 .tar.gz)、包(.nupkg、.vsix)二进制文件。 | | `artifact metadata` | 对一个或多个 artifact 位置的描述,描述了根据主机架构、目标架构或其他属性的选择来部署哪些 artifact 的规则| | `artifact identity` | 一个短字符串,唯一描述了可以引用给定 artifact(及其元数据)的名称。它们可以采用以下形式之一:
`full/identity/path` - 内置 artifact 源中 artifact 的完整标识
`sourcename:full/identity/path` - 由 sourcename 前缀指定的 artifact 源中 artifact 的完整标识
`shortname` - 内置 artifact 源中 artifact 的缩短唯一名称
`sourcename:shortname` - 由 sourcename 前缀指定的 artifact 源中 artifact 的缩短唯一名称
缩短名称是根据给定源中最短唯一标识路径生成的。 | | `artifact source` | 也称为“feed”。Artifact Source 是托管用于定位 artifacts 元数据的位置。(_目前只有一个源_) | | `activation` | 获取一组特定的 artifacts 并使其能够在调用命令程序中使用的过程。| | `versions` | 版本号使用 Semver 格式指定。如果未指定特定操作的版本,则假定最新版本的范围( `*` )。可以使用 npm semver 匹配语法指定版本或版本范围。存储版本时,可以使用指定的版本范围、空格以及找到的版本进行存储。(即,第一个版本是请求的版本,第二个是安装的版本。不需要单独的 lock 文件。) | # 贡献指南 请参阅 [主 `README.md`](https://github.com/microsoft/vcpkg/blob/master/README.md) 中的“贡献”部分。 本项目已采用 [Microsoft 开源行为准则][contributing:coc]。 欲了解更多信息,请参阅[行为准则常见问题解答][contributing:coc-faq] 或发送电子邮件至 [opencode@microsoft.com](mailto:opencode@microsoft.com) 提出其他问题或意见。 ## Windows 贡献前置条件 * 安装 Visual Studio 和 C++ 工作负载 * 通过从 https://nodejs.org/en/ 下载 16.x 副本来安装 Node.JS * `npm install -g @microsoft/rush` ## Ubuntu 22.04 贡献前置条件 ``` curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt update sudo apt install nodejs cmake ninja-build gcc build-essential git zip unzip sudo npm install -g @microsoft/rush ``` # 许可证 本仓库中的产品代码根据 [MIT 许可证](LICENSE.txt) 授权。测试包含 `NOTICE.txt` 中记录的第三方代码。 # 商标 本项目可能包含项目、产品或服务的商标或徽标。授权使用 Microsoft 商标或徽标受其约束并必须遵循 [Microsoft 商标与品牌指南](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general)。 在本项目的修改版本中使用 Microsoft 商标或徽标不得造成混淆或暗示 Microsoft 赞助。 任何第三方商标或徽标的使用均受这些第三方政策的约束。 # 遥测 vcpkg 收集使用数据以帮助我们改善您的体验。 Microsoft 收集的数据是匿名的。 您可以通过使用 -disableMetrics 重新运行 bootstrap-vcpkg 脚本、 在命令行中将 --disable-metrics 传递给 vcpkg, 或通过设置 VCPKG_DISABLE_METRICS 环境变量来选择退出遥测。 在主仓库中阅读更多关于 vcpkg 遥测的信息,请访问 https://learn.microsoft.com/vcpkg/about/privacy
## 安装/使用/移除 | 操作系统 | 安装 | 使用 | 移除 | |-----------------|-----------------------------------------------------|-----------------------|---------------------------------| | **PowerShell/Pwsh** |`iex (iwr -useb https://aka.ms/vcpkg-init.ps1)` |` . ~/.vcpkg/vcpkg-init.ps1` | `rmdir -recurse -force ~/.vcpkg` | | **Linux/OSX** |`. <(curl https://aka.ms/vcpkg-init.sh -L)` |` . ~/.vcpkg/vcpkg-init` | `rm -rf ~/.vcpkg` | | **CMD Shell** |`curl -LO https://aka.ms/vcpkg-init.cmd && .\vcpkg-init.cmd` |`%USERPROFILE%\.vcpkg\vcpkg-init.cmd` | `rmdir /s /q %USERPROFILE%\.vcpkg` | ## 术语表 | 术语 | 描述 | |------------|-----------------------------------------------------| | `artifact` | 存储构建工具或其组件的存档文件(类似 .zip 或 .tar.gz)、包(.nupkg、.vsix)二进制文件。 | | `artifact metadata` | 对一个或多个 artifact 位置的描述,描述了根据主机架构、目标架构或其他属性的选择来部署哪些 artifact 的规则| | `artifact identity` | 一个短字符串,唯一描述了可以引用给定 artifact(及其元数据)的名称。它们可以采用以下形式之一:
`full/identity/path` - 内置 artifact 源中 artifact 的完整标识
`sourcename:full/identity/path` - 由 sourcename 前缀指定的 artifact 源中 artifact 的完整标识
`shortname` - 内置 artifact 源中 artifact 的缩短唯一名称
`sourcename:shortname` - 由 sourcename 前缀指定的 artifact 源中 artifact 的缩短唯一名称
缩短名称是根据给定源中最短唯一标识路径生成的。 | | `artifact source` | 也称为“feed”。Artifact Source 是托管用于定位 artifacts 元数据的位置。(_目前只有一个源_) | | `activation` | 获取一组特定的 artifacts 并使其能够在调用命令程序中使用的过程。| | `versions` | 版本号使用 Semver 格式指定。如果未指定特定操作的版本,则假定最新版本的范围( `*` )。可以使用 npm semver 匹配语法指定版本或版本范围。存储版本时,可以使用指定的版本范围、空格以及找到的版本进行存储。(即,第一个版本是请求的版本,第二个是安装的版本。不需要单独的 lock 文件。) | # 贡献指南 请参阅 [主 `README.md`](https://github.com/microsoft/vcpkg/blob/master/README.md) 中的“贡献”部分。 本项目已采用 [Microsoft 开源行为准则][contributing:coc]。 欲了解更多信息,请参阅[行为准则常见问题解答][contributing:coc-faq] 或发送电子邮件至 [opencode@microsoft.com](mailto:opencode@microsoft.com) 提出其他问题或意见。 ## Windows 贡献前置条件 * 安装 Visual Studio 和 C++ 工作负载 * 通过从 https://nodejs.org/en/ 下载 16.x 副本来安装 Node.JS * `npm install -g @microsoft/rush` ## Ubuntu 22.04 贡献前置条件 ``` curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt update sudo apt install nodejs cmake ninja-build gcc build-essential git zip unzip sudo npm install -g @microsoft/rush ``` # 许可证 本仓库中的产品代码根据 [MIT 许可证](LICENSE.txt) 授权。测试包含 `NOTICE.txt` 中记录的第三方代码。 # 商标 本项目可能包含项目、产品或服务的商标或徽标。授权使用 Microsoft 商标或徽标受其约束并必须遵循 [Microsoft 商标与品牌指南](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general)。 在本项目的修改版本中使用 Microsoft 商标或徽标不得造成混淆或暗示 Microsoft 赞助。 任何第三方商标或徽标的使用均受这些第三方政策的约束。 # 遥测 vcpkg 收集使用数据以帮助我们改善您的体验。 Microsoft 收集的数据是匿名的。 您可以通过使用 -disableMetrics 重新运行 bootstrap-vcpkg 脚本、 在命令行中将 --disable-metrics 传递给 vcpkg, 或通过设置 VCPKG_DISABLE_METRICS 环境变量来选择退出遥测。 在主仓库中阅读更多关于 vcpkg 遥测的信息,请访问 https://learn.microsoft.com/vcpkg/about/privacy
标签:AI合规, Bash, Bash脚本, C++, IPv6, MacOS, MITM代理, PowerShell, vcpkg, vcpkg-artifacts, 二进制组件, 依赖管理, 包管理器, 库管理, 应用安全, 开发环境, 开源, 开源框架, 微软, 持续集成, 数据擦除, 清单模式, 统一API, 软件开发