目录:
一、何为 CMake?
二、为什么要用 CMake?
三、CMake 的简单使用
在维基百科中,CMake 的定义是这样的:
CMake开源跨平台自动化建构
我们可以在终端中输入 :
cmake ,
make
就编译完毕了。
这就是 CMake 和 CMake 的使用效果了。
二、为什么要用 CMake?
还是刚才的例子:
学过 C 语言的都知道,这就是编译的整个过程。但是这只是最简单过程,在 C 语言中,还有多文件编程,我们再举一个例子:
此时我们新建了 helloworld.c 和 helloworld.h 两个文件并将 helloworld.c helloworld.h main.c 的文件内容修改如下:
那么此时我们想要编译这些文件就需要输入:clang https://www.bilibili.com/read/cv/src/main.c https://www.bilibili.com/read/cv/src/helloworld.c 这样的命令了。随着工程越来越大,需要的文件也就越来越多,最终用这么简单粗暴的方法编译文件就变得非常不可取,于是诞生了 make 这个工具,在维基百科中,make 的定义是这样的:
软件开发makefile自动化建构
在这个例子中,使用 CMake 来进行编译是这样的:
是不是很简单呢?
在我初学 CMake 的时候,在网上找了许多教程,让我印象犹为深刻的是一篇名为《CMake Practice》的博客,有兴趣的可以自己搜索一下。但是在我实际用的时候(当然我没有多少需求),的确用不到多少。于是就想写一篇这样的专栏给 C 语言和 CMake 的初学者们。
要使用 CMake,首先要新建一个名为 CMakeLists.txt (注意大小写)的文件,这个文件时 CMake 使用的关键。
这几乎是 CMake 文件中最基本的东西,有了这些,就可以直接使用 CMake 了。
下面我们来逐句分析这个文件中的内容。
首先来看第一句:
cmake_minimum_required(VERSION 3.10.2)
这一句话顾名思义,就是运行此 CMake 所需的最低 CMake 版本,你可以输入命令:cmake -version 来查看自己的当前 CMake 版本
如果没有写这一句,cmake 就会拒绝运行,并提示你要编辑最低 cmake 所需版本。
再来看第二句话:
aux_source_directory(src SRC)
同样的,顾名思义,这个就是源代码文件所在目录,将这个目录中的源码文件全部赋值给 SRC 这个变量。
如果是少一些的源文件,我们也可以使用 set 命令,如:
set(SRC main.c)
但是显然我们可以看出,aux_source_directory 这个命令更加方便一些。
最后来看 add_executable(main ${SRC})
与之前两个命令一样,这个命令的意思就是输出可以执行文件,将 SRC 这个变量中的所有文件一起编译,输出为 main 这个程序。注意:美元符号后面的是大括号喔!
这些都是前期工作,在使用 CMake 的时候,是非常简单的。
首先,我们输入命令:cmake .
即在当前目录下使用 CMake 程序,该命令会输出一个 makefile 文件,接着我们按照 makefile 的使用方法(命令:make)就可以了。
CMake 在输出 makefile 的时候,会为我们加上 clean 这个 make 的选项,我们可以直接输入:make clean,就可以清除编译过程产生的文件了。
这几乎是 CMake 的最简单用法了,如果想要看更多的 CMake 有关的知识,可以去 CMake 的官网,这里就不再多讲了。
下面附上几个有用的链接:
CMake 官网:https://cmake.org/
CMake Practice: https://github.com/Akagi201/learning-cmake/blob/master/docs/cmake-practice.pdf
万维百科 CMake 词条:https://www.wanweibaike.com/wiki-Cmake
万维百科 Makefile 词条:https://www.wanweibaike.com/wiki-Makefile

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/196227.html