-
gcc和clang
gcc和clang是两个不同的编译器 -
make和cmake
make和cmake是搭配编译器来方便用户进行多文件编译而发明的工具 -
makefile
make工具相当于一个智能的批处理工具,本身没有编译和链接的功能,而是用类似于批处理的方式通过调用makefile文件中用户指定的命令来进行编译和链接。而makefile又是什么,就相当于用户将要执行的一系列命令,make根据makefile中的命令对相应的源文件进行编译和链接的 -
CMakeLists.txt
但是如果你自己要编译很多源文件的时候,也是要自己写makefile吗? 当然不,还是比较麻烦,所以我们需要cmake工具,这样就可以更加方便地生成makefile文件给make用。cmake还有其他功能,就是可以跨平台生成对应平台能用的makefile,无需自己根据每个平台的不同特性去修改。而cmake根据什么生成makefile,它需要根据CMakeLists.txt文件(组态档)去生成makefile。
**特点**
gcc是GNU Compiler Collection,也称为GNU编译器套件,可以理解为编译器,它可以编译很多种语言:C/C++、FORTRAN、JAVA、OBJC、ADA等。
假如我有一个源文件(比如.c文件),我就可以用gcc命令来编译它
clang也一样,Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。源代码发布于BSD协议下。
Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。
clang和gcc相比比gcc编译速度更快一些,而且错误提示更人性化