#1 C++ 包管理的现状:三大巨头

主要观点:

  • 介绍 C++ 的包管理和供应商解决方案,虽有争议但有多种解决方案。
  • 测试了 conan、vcpkg、spack 等多种包管理工具,从多个方面进行评估。

关键信息:

  • 测试标准包括声明式依赖、构建可重复性等。
  • conan 是事实上的行业标准,多平台,支持多种构建系统,使用方便,通过 profile 配置编译器等。
  • vcpkg 类似 conan,主要面向 CMake 项目,对 Meson 支持不佳,可通过添加私有仓库等方式扩展。
  • spack 自称超级计算机包管理器,语言独立,通过创建环境管理依赖,安装方便,创建包也较容易。

重要细节:

  • conan 测试中,在 CMake、Meson、Bazel 等不同构建系统下均能正常工作,支持多种功能,但处理非原生包不太直接。
  • vcpkg 测试中,创建项目和安装依赖简单,能构建 Meson 项目等,但对构建时依赖支持不足。
  • spack 测试中,能成功构建 pantor/inja 包,在 CMake 和 Meson 项目中均表现良好,维护全局包缓存。

总结:

  • 所讨论的解决方案都值得推荐给复杂项目,个人更倾向 conan,spack 的包导入简单也给人留下深刻印象,系列后续还有很多内容待介绍。
阅读 31
0 条评论