克隆使用 vcpkg 的项目时如何安装包

Ric*_*uis 5 c++ git cmake vcpkg

我正在尝试 vcpkg 包管理器,但遇到了一些问题。我有一个使用 cmake 和 vcpkg 的 C++ 项目,并使用 vcpkg 来安装 cache2 包。现在一切正常,但一旦我推送项目并克隆它,我就找不到如何恢复已安装的软件包。

我所做的是这样的:

  • 安装 vcpkg 作为子模块
  • 使用 vcpkg 安装了cache2
  • 将cache2添加到cmake

到目前为止,一切正常,当我推送和克隆项目时,它会出错。

  • git clone --recurse-submodules
  • .\extern\vcpkg\bootstrap-vcpkg.bat
  • vcpkg列表

现在似乎没有安装任何东西,我不希望每个人在克隆时都一一安装所有软件包。有没有办法在克隆时自动安装所有软件包?

Ric*_*uis 7

我已经使用 vcpkg 清单找到了一个不错的解决方案,它仍然是一个实验性功能,但我还没有遇到任何问题。为了使用清单,请执行以下操作:

  • 在根文件夹中添加包含以下内容的 vcpkg.json 文件:
{
  "name": "projectname", // should be lowercase, uppercase will give an error
  "version-string": "0.1.0",
  "dependencies": [ // add here your dependencies you would normally install with vcpkg install [package name]
    "catch2"
  ]
}
Run Code Online (Sandbox Code Playgroud)
  • 运行: vcpkg install --feature-flags=manifests,这将安装阵列中的所有依赖项。

要删除软件包,只需从列表中删除依赖项并运行上述命令。