worldsite / blog.sc

Blogging soul chat, stay cool. via: https://blog.sc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C/C++编译系统与自动化

suhao opened this issue · comments

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 的点)浏览包元数据。
  • 与国际发展部集成
  • 独立不依赖于任何解释器或外部依赖项,或完全挤满了解释器,便于安装和部署