当前位置:网站首页 > 云服务教程 > 正文

cmake 菜鸟(菜鸟教程makefile)



目录:

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

到此这篇cmake 菜鸟(菜鸟教程makefile)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • xmouse设置教程(xmouse设置模拟按键)2026-04-22 23:09:09
  • keil软件破解教程(keil破解步骤)2026-04-22 23:09:09
  • 2259xt开卡教程(2263xt开卡)2026-04-22 23:09:09
  • ad20铺铜规则设置(ad20铺铜教程)2026-04-22 23:09:09
  • 个人服务器怎么搭建(个人服务器怎么搭建教程)2026-04-22 23:09:09
  • win10 u盘启动盘制作(win10u盘启动盘制作教程)2026-04-22 23:09:09
  • 赛博朋克2077战斗教程怎么过(赛博朋克2077完整攻略)2026-04-22 23:09:09
  • 小程序服务器配置教程(小程序 服务器)2026-04-22 23:09:09
  • cmake教程详解(cmake入门实战)2026-04-22 23:09:09
  • cmake教程pdf下载(cmake pdf 入门 精通)2026-04-22 23:09:09
  • 全屏图片