1. CMake概念
CMake 全名为 cross platform make。
主要用来处理大型的 C/C++/java 项目。
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。
1.1 cmake 和 makefile 关系
makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。
CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,
在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需 make 编译即可,
所以可以把 CMake 看成一款自动生成 Makefile 的工具
。
详情如下:
1.1 cmake、qmake 、
cmake是抽象层次更高的项目管理工具,cmake命令执行的CMakeLists.txt文件
qmake是Qt专用的项目管理工具,对应的工程文件是.pro,在Linux下面它也会生成Makefile,
当然,在命令行下才会需要手动执行qmake,完全可以在qtcreator这个专用的IDE下面打开.pro文件,使用qmake命令的繁琐细节不用你管了。
make用来执行Makefile,cmake用来执行CMakeLists.txt,qmake用来处理*.pro工程文件。
Makefile的抽象层次最低,cmake和qmake在Linux等环境下最后还是会生成一个Makefile。
cmake和qmake支持跨平台,cmake的做法是生成指定编译器的工程文件,而qmake完全自成体系。
如下图,其中cl表示visual studio的编译器,gcc表示linux下的编译器
2. Install
2.1 Ubuntu安装教程
```bash
安装前首先安装 gcc g++ openSSL
sudo apt update
sudo apt-get install g++
sudo apt-get install libssl-dev
CMake安装有两种方法:
1.使用Linux系统自带的镜像包(可能不是最新的)
sudo apt install cmake
2.在官网下载相关版本
https://cmake.org/download/ #1.下载
tar -zxv -f cmake-3.17.1.tar.gz #2.解压
./bootstrap #3.进入解压后的cmake文件夹,执行:
make #4.编译构建
sudo make install #5.安装
自此就安装完成了。
cmake --version #验证安装版本
```
3. Common Commands
进阶–cmake_minimum_required介绍
进阶–cmake_policy命令
进阶–cmake字符串操作
进阶–为项目输出添加后缀
进阶–缓存变量(Cache Variable)
进阶–include指令(.cmake文件/MACRO宏/function函数)
进阶–find_package命令用法