CMake简介
CMake是一个开源、跨平台的Make工具,英文全称为cross platform make.它使用简单的脚本语句来描述所有平台的编译过程。类似的工具还有Qt的qmake、微软的MS nmake、GNU的GNU make 等。不同的make工具遵循不同的标准,也适用于不同的操作系统平台。而CMake相比之下最突出的优点是跨平台,只需要编写一个CMakeList.txt指定编译流程,然后就可以根据用户平台的不同而生成当前平台的Makefile和工程文件。比如著名的opencv就是采用了CMake,在编译opencv源码的时候就可以知道,在window编译时首先会根据源码目录下的CMakeList.txt文件生成VS解决方案,而后再使用VS进行编译操作;在Linux平台编译时,也是根据CMakeList.txt文件先产生Makefile文件,再使用Linux的Make工具进行编译操作。
作为一个优秀的跨平台开源Make工具,使用CMake作为构建工具的项目有很多,比较著名的有:
- OpenCV
- Boost c++ libraries
- LLVM
- clang
… 更多的开源库可在维基百科查看CMake-维基百科
简单文件
- cpp源文件
|
|
- CMakeLists文件
|
|
笔记
- 构建文件名为CMakeLists.txt
- 最简单的单文件构CMakeLists.txt包含三个部分:1(cmake最低版本要求)、2(项目信息)、4(指定生成目标文件)
- CMakeLists.txt详解
|
|
cmake最低版本要求,还有以下的扩展写法
|
|
|
|
项目信息,描述项目信息的名称
|
|
设定使用c++编译器的版本,使用符合c++14标准的编译器编译项目。
|
|
指定生成的目标信息,将main.cpp文件编译成一个名称为demo1的可执行文件。
references
【1】CMake入门实战 【2】An Introduction to Modern CMake 【3】CMake Tutorial 【4】CMake-维基百科
本文由芒果浩明发布,转载请注明出处。 本文链接:https://blog.mangoeffect.net/tools/cmake-learning.html