构建中不存在 libgit2 依赖项 pcre

问题描述

我正在构建一个 C++ 应用程序,它使用 libgit2 库与 git 存储库进行交互。我已经通过 vcpkg 安装了 libgit2,它也安装了 libgit2 需要的 pcre 库。到现在为止还挺好。当我构建我的项目时没有问题,只有当我启动应用程序时它才会抛出一个错误,即 pcre.dll 不存在。这是正确的,pcre.dll 不在我的输出文件夹中,因为我的代码都没有与之交互。 Libgit2 需要它。

如何将依赖项的依赖项包含在我的最终构建中?

Pcre 存在并考虑在内,但我的代码都没有使用它,因此它不会包含在我的应用程序的构建中。 git2.dll 确实包含在构建中。需要添加到 Visual Studio 的路径在那里,由 vcpkg 管理。一切都已设置好,以便 pcre 可以在需要时包含在构建中。

我使用 libgit2 v 1.1.0、Visual Studio 2019 和 vcpkg 的最新稳定版本。

解决方法

我遇到了同样的问题并已打开 PR:https://github.com/microsoft/vcpkg/pull/18289

根据 Neumann-A 在 PR 中的反馈,看起来可能存在阻止 pcre DLL 复制到发布/部署文件的错误。现在,欢迎您使用我的 vcpkg fork,它公开了“内置”REGEX_BACKEND CMake 选项,它可以解决这个问题。 https://github.com/motevets/vcpkg/tree/fix-libgit2