我开始熟悉linux(ubuntu)中用于C++包管理器的vcpkg。也许我不明白的东西,但它似乎是vcpkg的依赖副本。例如,如果我想在10个项目中使用SDL2,vcpkg将为每个项目制作10个SDL2副本。谁能告诉我这是怎么回事?我宁愿在系统范围内安装SDL2,并将一个文件用于10个项目。我错过了什么?我对编程很陌生,如果这是一个愚蠢的问题,请原谅我。
4dbbbstv1#
谁能告诉我这是怎么回事?vcpkg被设计为在清单模式下将项目工件与其他工件隔离。因此,它将执行每个项目的安装。如果你想以“共享”的方式使用vcpkg,你必须依赖经典模式,并将你的项目指向经典模式安装。但是,请注意,这不是清单模式和经典模式之间的唯一区别。在经典模式下,安装的树在安装时或多或少是固定的,而在清单模式下,端口abi的当前状态将在配置时重新评估,如果发生了更改,树将重新安装和更新,这可以防止安装的树出现混合版本的vcpkg(除非您在清单模式下通过版本控制功能明确要求它)
1条答案
按热度按时间4dbbbstv1#
谁能告诉我这是怎么回事?
vcpkg被设计为在清单模式下将项目工件与其他工件隔离。因此,它将执行每个项目的安装。如果你想以“共享”的方式使用vcpkg,你必须依赖经典模式,并将你的项目指向经典模式安装。
但是,请注意,这不是清单模式和经典模式之间的唯一区别。在经典模式下,安装的树在安装时或多或少是固定的,而在清单模式下,端口abi的当前状态将在配置时重新评估,如果发生了更改,树将重新安装和更新,这可以防止安装的树出现混合版本的vcpkg(除非您在清单模式下通过版本控制功能明确要求它)