C++构建系统-使用什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我正在研究用C ++开始一个新项目 - 就在我最初的时候 - 我正在研究可用的构建系统。

我特别需要的功能是:

  1. C ++ 11支持
  2. 跨平台(Linux作为主要目标,但至少可以在Windows上构建)
  3. 体面的单元测试支持
  4. 支持多个用于分离代码的模块
  5. 支持代码生成(使用asn1c或protobuf - 目前还不是100%)
  6. 易于维护
提问于
用户回答回答于

“最丰富”和“最可伸缩”可能是CMake,它是一个Makefile生成器(也生成本机MSVC ++ *.proj/ *.sln)。奇怪的语法,但一旦你了解它,它可以让你很好地为不同的平台生成构建。如果我“开始新鲜”,我可能会使用CMake。它应该处理你的列表,尽管你的“代码生成”可以在构建系统之外采取“一生一世”的方式,这取决于你想要做什么。(见下文。)

对于简单的项目,QMake生成器是可以的(你不需要使用Qt库来使用QMake)。但是,你并没有描述“简单” - 代码生成和“额外阶段”意味着你可能想要CMake或者为你自己的扩展使用丰富的API,比如Scons(或Waf)。

我们在工作中使用Scons。它产生了“防弹建造”,但速度很慢。没有其他系统会像防弹一样防御Scons。但是,这很慢。它是用Python编写的,我们扩展了“工作空间组织”(我们只是指定模块依赖关系)的接口,这是Scons设计意图的一部分(这种类型的Python扩展)。方便,但建设速度缓慢。你可以获得防弹版本(任何开发者盒子都可以制作最终版本),但速度很慢。而且,速度很慢。不要忘记,如果你使用Scons,但速度很慢。而且,速度很慢。

扫码关注云+社区