前言:cmake能且仅能识别的cmake文件名称为CMakeLists.txt,有一个字母的错误都会导致cmake无法正常使用,同时,包含CMakeLists和源代码的最初的目录被称作顶级构建目录
cmake还有很多东西,本人比较懒,学校里突然让使用clion,为了获得比较好的编程体验,特意学了一点cmake知识,对于使用clion作为学习c语言是很够了
1、设置最低版本要求
cmake_minimum_required(VERSION 3.18)
这里一般设置为3.18版本,虽然还有更新的,但是很多Linux发行版自带的CMake版本不一
2、设置项目名称
project( hello_world
VERSION 3.18
LANGUAGE C CXX
)
示例是将项目名称设置为hello_world,VERSION是用来指定CMake版本,而下面的LANGUAGE是用来设置项目语言(project一定要在顶级构建目录(最初源文件的目录)中显示调用,否则CMake会报警告,并将语言设置为默认的C和C++,项目名称设置为project)
3、指定可执行文件的名称以及与其相关的源文件的名称
add_executable(main main.cpp)
示例是将构建目录的main.cpp作为原文件,最终构建出的可执行文件是main。
可执行文件的名称必须在项目里全局唯一
4、生成构建目录
分为两种构建方式:源内构建和源外构建
前者的意思是直接在源代码目录下生成各种各样的配置文件,后者是在源代码目录之外的一个目录生成我们各种各样的配置文件
官方更加推荐我们使用前者,因为这样可以保证源代码目录的整洁易读
主要有一下三种命令行写法构建工作目录
cmake . 这是在源文件目录生成构建目录
cmake ../ 这是在源文件目录中再创建一个目录来生成各种各样的配置文件
cmake -S ./ -B ../ 这是指定源代码目录和我们的构建目录,-S用于指定源代码目录,-B用于指定构建目录
5、测试CTest
include(CTest)#包含相应组件
add_test(
NAME testAdd #测试项目名称
COMMAND main #要测试的可执行文件
)
其中测试的方法有以下三种
(1)直接./运行可执行程序查看
(2)采取make test的方式,使用cmake帮你生成的makefile进行运行
(3)ctest指令,错误信息会被存放在Testing的一个叫做LastTest.log的文件里(如果你使用的是vscode的远程开发的话,你可以按住ctrl然后点击给出的链接来查看相应错误日志)