C/C++编译系统与自动化
suhao opened this issue · comments
suhao commented
一、编译系统与编译自动化
1. 编译系统
- CMake
- GNU Autotool
- MSBuild
- Meson
- QMake
- KBuild
- build2
- xmake
- Bazel
- Make
2. 包管理
- Conan
- vcpkg
- Buckaroo
- QPM
- cget
- Hunter
- Cppan
- Build2
- CPM
- Spack
- Nuget
包管理器的选择注意事项:
- 具有CMake集成的最成熟管理器是Conan和vcpkg
- Vcpkg 的软件包数量最多,但是,无法安装同一包的多个版本或托管本地包存储库
- Conan 文档记录更多,并且对包版本提供了更多控制。它具有去集中存储库,还允许用户托管本地或 Intranet 专用存储库。柯南的一个小问题是 Python 安装要求,但通过将柯南转换为单个本机可执行文件,通过将柯南 Python 模块与 Python 解释器打包为 Windows 的 Py2Exe 工具,可以快速解决此问题
包管理器的一些合理功能集
- CMake 集成
- 默认存储库、去集中存储库和本地存储库。
- 交叉平台
- 无需调用任何外部命令即可更轻松地使用 CMake,应将要安装的包定义在 CMakelists.txt 文件中。
- 命令行工具
- 从命令行或 IDE(如 .net 的 Nuget 或 Python 的点)浏览包元数据。
- 与国际发展部集成
- 独立不依赖于任何解释器或外部依赖项,或完全挤满了解释器,便于安装和部署