为什么在 CMake 中使用 find_package() ?将所有 dep 放在像“libs”这样的特殊文件夹中,然后通过 add_subdirectory() 添加它不是更好吗?尤其是在 Windows 上,这更容易,我不必设置所有这些 dep。 vcpkg 等管理工具。这样我就可以放置我可能需要的特定版本的库。如果我在另一台 PC 上克隆该 CMake 项目,我可以轻松编译它,无需额外的设置。我觉得超级简单又方便。
但是这种方法会导致我遇到一些我目前没有看到的问题吗?
正如 drescherjm 在您的评论中提到的,非常大的库可能会严重减慢您的 IDE 速度,并可能使您的构建时间变得非常长。
通过 find_package,CMake 创建这些构建依赖项的缓存,从而使重建快速高效。
关于将项目克隆到另一台 PC,我建议您查看 CMake 的 FetchContent。
FetchContent
获取远程存储库并在配置时使它们可供 CMake 使用,从而允许您在它们上调用 find_package
。