CMake学习笔记(一).md
单个源文件的构建编译
首先让一个简单的项目跑起来再去研究里面的技术,我们事先知道每一个CMake项目里有着一个名叫 CmakeLists.txt的配置文件,以及我们需要编译的源文件仅有一个,名叫 tutorial.cxx.在配置文件写入一下代码
cmake_minimum_required(VERSION 3.10)
# set the project name
project(Tutorial)
# add the executable
add_executable(Tutorial tutorial.cxx)
接下来我们使用安装好cmake环境变量的win10命令行构建这个简单的项目,在这之前检查机器安装是否安装好cmake,输入cmake出现一下字样就是安装完毕。

好,接下来我们就需要通过命令行编译tutorial.cxx文件构建项目
-
方便起见,创建新文件夹保存构建时产生的文件
mkdir Step1_build -
进入新建的文件夹,开始构建项目
cd Step1_buildcmake ../Step1Tips: 这里cmake后面接的路劲必须包含一个叫
CMakeLists.txt的文件,还有Step1这个文件夹不是固定的,取决于这个项目放在哪,简单来说就是CMakeLists.txt所在的文件 -
开始编译源代码
cmake --build
有一个需要注意的地方就是如果在windows系统上输入以上命令是有可能会报错的

出错的原因在于系统没有NMake,这个东西是什么,我也不知道,但是我们可以通过下面的代码查看cmake的默认生成器
cmake -G

眼花缭乱有没有,这都是cmake支持的生成器类型,以后会解释生成器是什么,这里带星号的是默认的生成器。
为了解决报错的问题,我们可以指定cmkae生成器,事先我们在命令行终端键入gcc -v查看我们gcc默认编译器是哪个版本。

我这台电脑安装的C编译器是TDMgcc版本,支持Mingw,所以之后我们指定cmake的生成器为Mingw类型的就行了。根据机器的不同,如果有其他的比如vs,那类似于选择Mingw去选择vs就行。
指定生成器构建加上 -G 参数

编译和运行
编译只要在build文件夹里面输入cmake --build .就可以

可以看到是运行成功了。
如果遇到下这样的报错:

是因为两种生成器产生的临时文件不一样,只要把Step1_build文件夹里的临时文件全部删掉就可以。
自此,一个项目的构建和编译运行都已完成,鼓掌鼓掌。
文中所需所有的文件均来自cmake源代码自带的教程
下载链接
https://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4.zip

浙公网安备 33010602011771号