文章目录
- cmake, make, CMakeList.txt, Makefile之间的关系
- 参考文章链接:
(转自个人博客)
在各种开源项目中,经常会发现项目中除了代码源文件,还包含了 CMakeList.txt、 Makefile 文件,在项目的编译时候需要用到的命令有 cmake 、 make。本文主要介绍一下两个文件和命令之间的关系。
cmake, make, CMakeList.txt, Makefile之间的关系
编写程序的大体流程为:
- 用编辑器(vim、emacs等)编写源代码文件(.h、.cpp等);
- 用编译器编译代码生成目标文件(.o等);
- 用链接器连接目标文件生成可执行文件(.exe等)。
一个程序在编写时,可能需要编写很多的代码文件,以及依赖很多第三方的库。在这种情况下,手动依次编译每个文件会变的非常麻烦,效率低下。
make 是一个自动化的批量编译工具,可以实现用一个命令构建整个工程的目的。但是其执行需要依赖一个规则文件,这个文件就是 Makefile。 Makefile 文件里详细描述了构建的细节(文件的依赖关系,编译的先后顺序等)。
对于一个大工程来说,编写 Makefile 文件也是一项非常复杂的事情。
cmake(Cross-platform Make)是一个可以自动生成 Makefile 文件的工具,当然它不只能生成 Makefile ,还能跨平台生成主流IDE(VS, xcode…)构建工程所需的 project 文件。 cmake 的执行同样需要依赖规则文件,这个文件就是 CMakeLists.txt 。
综上所述,大致可以总结 cmake, make, CMakeList.txt, Makefile 之间的关系,如下图所示:
参考文章链接:
- http://blog.sina.com.cn/s/blog_74a459380102uxlz.html
- http://blog.csdn.net/android_ruben/article/details/51698498
- http://blog.csdn.net/fly_yr/article/details/49815705
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)