如果我将 C++ 项目依赖项直接放入项目中,可能会遇到什么问题? (或者为什么要使用 find_package() ?)

问题描述 投票:0回答:1

为什么在 CMake 中使用 find_package() ?将所有 dep 放在像“libs”这样的特殊文件夹中,然后通过 add_subdirectory() 添加它不是更好吗?尤其是在 Windows 上,这更容易,我不必设置所有这些 dep。 vcpkg 等管理工具。这样我就可以放置我可能需要的特定版本的库。如果我在另一台 PC 上克隆该 CMake 项目,我可以轻松编译它,无需额外的设置。我觉得超级简单又方便。

但是这种方法会导致我遇到一些我目前没有看到的问题吗?

cmake dependency-management
1个回答
0
投票

正如 drescherjm 在您的评论中提到的,非常大的库可能会严重减慢您的 IDE 速度,并可能使您的构建时间变得非常长。

通过 find_package,CMake 创建这些构建依赖项的缓存,从而使重建快速高效。

关于将项目克隆到另一台 PC,我建议您查看 CMake 的 FetchContent

FetchContent
获取远程存储库并在配置时使它们可供 CMake 使用,从而允许您在它们上调用
find_package

© www.soinside.com 2019 - 2024. All rights reserved.