2025年cmake 菜鸟(菜鸟教程makefile)

cmake 菜鸟(菜鸟教程makefile)目录 一 何为 CMake 二 为什么要用 CMake 三 CMake 的简单使用 在维基百科中 CMake 的定义是这样的 CMake 开源跨平台自动化建构 我们可以在终端中输入 cmake make 就编译完毕了 这就是 CMake 和 CMake 的使用效果了 二 为什么要用 CMake 还是刚才的例子 这是一个由 C 语言编写的输出 Hello

大家好,我是讯享网,很高兴认识大家。



目录:

一、何为 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

小讯
上一篇 2025-05-11 17:58
下一篇 2025-05-31 15:58

相关推荐

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