比较Make和CMake

简介: 比较Make和CMakeMake(或者说一个Makefile)是构建系统 - 它驱动编译器和其它构建工具来构建你的代码。“Make”是一个工具,它控制可执行文件和程序的源文件以及程序的其他非源文件的生成。


比较Make和CMake


Make(或者说一个Makefile)是构建系统 - 它驱动编译器和其它构建工具来构建你的代码。
“Make”是一个工具,它控制可执行文件和程序的源文件以及程序的其他非源文件的生成。


CMake的是构建系统的生成器,CMake代表跨平台Make。它可以产生Makefile文件,它可以产生Ninja构建文件,它可以产生KDevelop或XCode的项目,它能产生Visual Studio解决方案。从同一个CMakeLists.txt文件来产生项目。如果你正在编写需要在很多不同的平台上构建的软件那么CMake的往往是一个不错的选择。

CMake优势:


◾用来写的CMakeLists.txt文件的语言是容易阅读和理解。
◾它不仅靠“Make”来构建项目。
◾它支持多个生成器像Xcode,Eclipse,Visual Studio,等等。
◾跨平台发现依赖的系统库。
◾自动发现和工具链的配置。
◾轻松地将您的文件以一个平台无关的方式编译成共享库,比make更容易使用。


参考文档:
1.https://prateekvjoshi.com/2014/02/01/cmake-vs-make/
2.http://stackoverflow.com/questions/25221869/difference-between-cmake-gnu-make-and-manually-compiling
3.http://stackoverflow.com/questions/25789644/makefile-vs-cmake

目录
相关文章
|
1月前
|
编译器 测试技术 开发者
Cmake的使用
CMake的安装和使用,通过一个简单的项目示例,展示了如何编写CMakeLists.txt文件和main.cpp程序,以及如何通过CMake生成构建文件并编译项目。
43 0
|
C++
make的路径搜索
make的路径搜索
52 0
CMake中使用vcpkg
vcpkg是一个微软开源的C++包管理器。 在以前的开发中,如果在项目中需要使用某个开源库,例如qt,我们需要取官网下载qt的源码,然后构建得到对应的库,然后在项目中链接这个库。对于自己熟悉的库还好说,若是不熟悉的库,如何拉取源码?如何构建?如何在项目中引用?等等这些问题通常会困扰我们,然而,大多数情况下,我们只是使用这个开源库,并不需要关心这个库的构建和编译等问题。如此,在以前的开发过程中,往往会花费不少的时间在引入开源库上。 vcpkg是在背景下开发出来的,通过vcpkg,我们可以在项目中很方便的引入开源库,不用再关心拉取代码、构建开源库的这些事情。 CMake构建的项目中引入开源库
191 0
|
Linux 异构计算
|
Ubuntu
CMake
CMake
149 0
make[1]: Nothing to be done for `all-am'.
make[1]: Nothing to be done for `all-am'.
608 0
|
消息中间件 关系型数据库 C语言
|
Java Linux C语言
|
C++
CMake vs Make对比
程序员现在已经使用了CMake和Make了很久。当您加入大公司或开始使用大型代码库开发项目时,您需要处理所有这些构建。你必须看到这些“CMakeLists.txt”文件浮动。你应该在终端上运行“cmake”和“make”命令。
1773 0
|
C语言
CMake的使用
使其生效的方法:首先cmake生成makefile,然后make edit_cache编辑编译选项;Linux下会打开一个文本框,可以更改,该完后再make生成目标文件——emacs不支持make edit_cache
1254 0