主要观点:
- 介绍 C++ 的包管理和供应商解决方案,虽有争议但有多种解决方案。
- 测试了 conan、vcpkg、spack 等多种包管理工具,从多个方面进行评估。
关键信息:
- 测试标准包括声明式依赖、构建可重复性等。
- conan 是事实上的行业标准,多平台,支持多种构建系统,使用方便,通过 profile 配置编译器等。
- vcpkg 类似 conan,主要面向 CMake 项目,对 Meson 支持不佳,可通过添加私有仓库等方式扩展。
- spack 自称超级计算机包管理器,语言独立,通过创建环境管理依赖,安装方便,创建包也较容易。
重要细节:
- conan 测试中,在 CMake、Meson、Bazel 等不同构建系统下均能正常工作,支持多种功能,但处理非原生包不太直接。
- vcpkg 测试中,创建项目和安装依赖简单,能构建 Meson 项目等,但对构建时依赖支持不足。
- spack 测试中,能成功构建 pantor/inja 包,在 CMake 和 Meson 项目中均表现良好,维护全局包缓存。
总结:
- 所讨论的解决方案都值得推荐给复杂项目,个人更倾向 conan,spack 的包导入简单也给人留下深刻印象,系列后续还有很多内容待介绍。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。