CMake图文安装教程

举报
人才程序员 发表于 2023/07/26 11:25:16 2023/07/26
【摘要】 @TOC 一、CMake概况CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile...

@TOC


一、CMake概况

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,在根据编译平台自动生成本地化的Makefile和工程文件,最后用户只需make编译即可,所以可以把CMake看成一款自动生成 Makefile的工具,其编译流程如下图:

在这里插入图片描述

CMake优点:

  • 跨平台
  • 能够管理大型项目
  • 简化编译构建过程和编译过程
  • 可扩展:可以为 cmake 编写特定功能的模块,扩充 cmake 功能

二、安装Ubuntu CMake

  1. 打开终端
    在这里插入图片描述

  2. 执行以下命令以更新软件包索引:

sudo apt update

在这里插入图片描述

  1. 安装 CMake
sudo apt install cmake

在这里插入图片描述因为我已经安装了CMake,大家执行这个命令就行了,我在此就不多演示了。

  1. 如果系统提示需要确认,请输入密码并按下 Enter 键以继续安装。
  2. 完成安装后,你可以通过运行以下命令来验证 CMake 是否成功安装:
cmake --version

在这里插入图片描述
我的CMake版本是3.22.1,下载的其他版本影响不大,后面可以编写CMake的时候可以调整。

三、简单的CMake实验

如何使用CMake

我们使用CMake需要编写一个CMakeLists.txt里面放的是CMake命令。
编写好之后执行cmake .(用于CMake文件在本级目录的)/cmake ..(用于CMake在父级目录的)
执行好后,找到makefile所在的文件夹,执行make

测试代码

测试main.c

#include <stdio.h>

extern void func();

int main()
{
    func();

    return 0;
}

测试func.c:

#include <stdio.h>

void func()
{
    printf("Hello CMake");
}

测试CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)#指定版本
project(test)#指定我这个项目的名称,不是可执行文件的名称
add_executable(app main.c func.c)#app是可执行文件 后面的是源文件 中间用空格隔开

执行CMake

1、打开终端,打开CMakeLists.txt所在的文件夹
执行下面的命令

cmake .

在这里插入图片描述
终端就会输出这些东西,我们的文件夹也会多出很多东西。

2、终端打开CMakeLists.txt同级文件夹。
执行makefile命令

make

在这里插入图片描述
我们就会看到上面的景象。

3、执行可执行文件

./app

在这里插入图片描述
最终结果如上所示。

总结

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

我们使用CMake的时候只需要cmakemake一下就可以,非常快速简单。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。