【发布时间】:2023-03-23 18:35:01
【问题描述】:
我正在尝试使用 vcpkg 包管理器,但我遇到了一些问题。 我有一个使用 cmake 和 vcpkg 的 c++ 项目,并使用 vcpkg 来安装 cache2 包。 现在一切正常,但是一旦我推送项目并克隆它,我就找不到如何恢复已安装的包。
我所做的是这样的:
- 安装 vcpkg 作为子模块
- 使用 vcpkg 安装 cache2
- 在 cmake 中添加了 cache2
到目前为止,当我推送和克隆项目时,一切正常。
- git clone --recurse-submodules
- .\extern\vcpkg\bootstrap-vcpkg.bat
- vcpkg 列表
现在似乎没有安装任何东西,我不希望每个人在克隆时都将所有软件包一一安装。克隆时有没有办法自动安装所有包?
【问题讨论】:
-
构建输出不是存储库的一部分。我相信
vcpkg/.gitignore文件已设置为忽略它。 -
是否有办法在克隆时自动安装所有包? 如果将输出放入存储库,它可能会很大。我的 vcpkg 文件夹超过 70GB
-
因此,如果用户克隆您的项目,则必须手动单独安装所有软件包?您可以使您的软件端口依赖于列表包,因此如果他们 vcpkg 安装您的软件,它将安装依赖包作为构建过程的一部分。
-
我为移植到 vcpkg 的软件创建了自己的覆盖端口。如果你已经在你的软件中使用 CMake,那么创建一个端口可能并不太难。