GCC、Make、CMake、Makefile、CMakelists的关系

首先,这些东西都是跟编译项目有关系的。它们之间的关系请从上至下一段一段地看:

1.GCC

GCC全称是GNU Compiler Collection,是一个编译套件。我们可以通过gcc/g++来编译目标项目。
但是当项目结构复杂时,通过gcc/g++命令直接编译会出现非常多不便之处,于是出现了Makefile。

2.Makefile

简单地说Makefile就是一个包含一堆有条理的gcc/g++编译命令的文件,便于提高开发者的工作效率。
Makefile是需要开发者自己手写的。
那之前可以通过在终端输入gcc/g++命令来编译项目,现在有了Makefile,又要怎么用呢?
这就讲到Make工具了。

3.Make

(还是简单地说吧,)Make工具就是“读取”并执行Makefile文件中的编译指令,从而进行项目编译。

4.CMakelists

当项目非常庞大,目录结构非常复杂时,手写Makefile就是一件非常恐怖的事情了,你需要在不同的目录底下写不同的Makefile,这可能有非常多个。
这时候就有CMakelists来拯救开发者了。CMakelists可以通过更简单的写法来生成对应的Makefile文件。
怎么生成呢?就是写好CMakelists.txt之后,通过CMake工具生成。

5.CMake

类似Make工具的功能,CMake工具就是“读取”并执行CMakelists.txt文件中的语句,来生成对应的Makefile。然后开发者就可以通过Make工具来“执行”Makefile了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.安装 $sudo apt-get install cmake 2.示例:简单的文件目录 sample |—...
    荷包蛋酱阅读 29,838评论 0 15
  • CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...
    AlphaGL阅读 14,204评论 11 79
  • 注:首发地址 1. 前言 当在做 Android NDK 开发时,如果不熟悉用 CMake 来构建,读不懂 CMa...
    cfanr阅读 24,683评论 1 53
  • 周五早上,出门前佳爸问我,书包背不背了?我毫不犹豫的回答:不拿了,反正也基本用不上。接着就是各自开车上班,我送佳宝...
    苗春丽阅读 2,701评论 1 2
  • 没钱考虑融资 股份制 学技术要干什么 要不学500年也不够
    A_杨彦明阅读 1,462评论 0 0