[cmake]cmake的生成器Generator

Cmake的生成器(Cmake Generator)负责为本地构建系统提供输入文件,我们知道,Cmake本身并不能直接编译链接和生成可执行文件,而是生成一些规则文件,编译系统再根据这些规则文件来进行真实的编译构建过程。

例如,在Linux系统下,Cmake命令会默认输出Makefile文件,而Makefile文件就是make构建所需要的输入文件,因此Linux系统上默认的Cmake生成器产生的就是Makefile文件。

然后,并不是每一个编译构建系统都需要使用makeMakefile文件,有些编译构建系统使用的是其他方式,甚至不同的平台上使用make编译相同的源码,所需要的Makefile也是有所区别的(例如LinuxWindows的文件目录,一个是/分隔,一个是\分隔;又例如Makefile中会调用一些与操作系统有关的命令,同样是删除文件,Linux下是rmWindows下是del),因此不同的生成器也是平台相关的,会根据要求生成本地编译构建系统所需要的输入文件。

本文将简单介绍Cmake当前支持的生成器分类。

如何指定生成器

可以在命令行中通过-G generator_name指定生成器,例如cmake -G "Unix Makefiles"指定生成适配类Unix系统的Makefile文件。

通过cmake --help可以查询支持的生成器,例如在Linux下的输出,前面带"*"号的表明未使用-G指定时Cmake使用的默认生成器:

Generators

The following generators are available on this platform (* marks default):
 Green Hills MULTI            = Generates Green Hills MULTI files
 (experimental, work-in-progress).
* Unix Makefiles               = Generates standard UNIX makefiles.
 Ninja                        = Generates build.ninja files.
 Ninja Multi-Config           = Generates build-<Config>.ninja files.
 Watcom WMake                 = Generates Watcom WMake makefiles.
 CodeBlocks - Ninja           = Generates CodeBlocks project files.
 CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.
 CodeLite - Ninja             = Generates CodeLite project files.
 CodeLite - Unix Makefiles    = Generates CodeLite project files.
 Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.
 Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
 Kate - Ninja                 = Generates Kate project files.
 Kate - Unix Makefiles        = Generates Kate project files.
 Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.
 Sublime Text 2 - Unix Makefiles
 = Generates Sublime Text 2 project files.

生成器的简介

主要分两类,一类是命令行构建工具的生成器,一类是IDE构建工具的生成器。

命令行工具的生成器

IDE构建工具的生成器


附录:参考文档

  1. https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html#id7
  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1768317420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值