【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
过去我们编写windows程序的时候,习惯上都是直接使用visual studio创建工程开发。而开发linux程序的时候,则是编写好c、cpp代码之后,自己编写makefile来进行编译。要是没有git版本工具,上面的这些开发方法问题不大,但是如果引入了版本管理之后,这么做有的时候可能并不一定合适,因为有可能生成大量的、无用的中间文件。所以,这个时候我们一般引入cmake工具来进行处理。
1、cmake工具可以自动帮助生成编译工具链
cmake的作用不是直接编译,而是帮助我们生成windows平台的sln文件、linux平台的makefile文件。这些文件如果自己创建或者写的话,很麻烦。但是有了cmake的帮助,就容易很多。
2、cmake支持windows平台和linux平台
cmake工具不仅仅支持windows平台,还可以支持linux平台。因为,我们在开发的过程当中,两个平台都会用到,所以用cmake来做编译工具的生成是非常合适的。上位机用windows开发,用cmake生成sln;下位机一般是arm平台,用cmake 生成交叉编译的makefile,就是这样。
3、cmake使用比较简单
不管是windows平台,还是linux平台,cmake的使用都是比较简单的。我们先以windows平台为例,假设有一个hello.cpp代码,
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
std::cout << "Hello, world" << std::endl;
return 0;
}
这个时候有了cpp代码之后,我们就可以创建一个CMakeLists.txt文件,
cmake_minimum_required(VERSION 2.8)
project(hello)
add_executable(hello hello.cpp)
此时,如果需要生成sln文件的话,只需要在cmd目录下输入下面这个命令即可,前提是本地已经安装了vs2017,
cmake -G "Visual Studio 15" -DCMAKE_BUILD_TYPE=debug ../
输入这条命令之后,本地就会创建sln文件。我们打开对应的sln文件,直接编译即可。如果是linux平台的话,那么就更简单了,直接输入cmake .. 就会生成makefile。在makefile同级目录输入make命令,就可以直接编译了。
4、cmake对git版本工具特别友好
我们都知道,编译过程中会生成大量的中间文件。很多的中间文件都特别占空间,而且没有意义。这个时候如果项目中仅仅有doc、src、manual、design file、res这些文件的话,整个项目就会显得特别清爽。版本管理也会容易很多。所以说,cmake本身对git一类的版本工具特别友好,特别方便。
5、直接安装对应版本的cmake
目前cmake支持的系统很多,包括windows、linux、mac,这些都不足为奇。甚至于,很多的linux+arm系统,都有对应的可执行包可以安装,这些都是很方便的。以树莓派4b为例,如果需要安装cmake,可以直接在官网找到对应软件的arm64版本即可。
https://cmake.org/download/