首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【CMake】CMake从入门到实战系列(一)—— CMake介绍以及安装方法

【CMake】CMake从入门到实战系列(一)—— CMake介绍以及安装方法

原创
作者头像
萧邯编程笔记
修改2025-09-30 16:03:49
修改2025-09-30 16:03:49
2200
举报

在平时工作开发的项目中,Makefile和CMake我都使用过,我个人偏向喜欢用CMake。因为CMake的跨平台性,还有其易移植、易维护等等特性。下面我们开始CMake的总结。

一、CMake介绍

"CMake"这个名字是"cross platform make"的缩写。虽然名字中含有"make",但是CMake和Unix上常见的"make"系统是分开的,而且更为高阶。

1、CMake是一个强大的跨平台的编译工具,它使用配置文件(CMakeLists.txt)来生成标准的构建文件,能够输出各种各样的makefile或者project文件。 2、CMake并不直接构建出最终的软件,而是生成标准的Makefile文件或者Visual Studio项目文件,然后再使用Make或者VisualStudio进行编译。 3、CMake在Windows平台上生成Visual Studio项目文件,在Linux和Unix平台上生成Makefile文件。

二、CMake和Makefile的优缺点

CMake和Makefile都是用于自动化软件构建过程的工具,但是它们在设计哲学、使用方式以及支持的特性上有着明显的不同。下面对两者做一个优缺点的比较:

1、CMake

优点:

跨平台: CMake可以为不同的编译环境生成相应的构建文件,如Unix Makefiles、Ninja、Visual Studio项目等。便捷的语法: CMakeLists.txt文件有着较为简单和易读的语法,易于编写和维护。高级功能: CMake提供了丰富的功能,如自动查找依赖库、编译器特性检测、测试和打包等,大大简化了多平台构建的复杂性。可重用性: CMake中可以创建模块化的构建脚本,易于在多个项目之间共享和复用。图形界面: 对于不熟悉命令行操作的用户,CMake提供了图形化界面工具(cmake-gui)。

缺点:

学习曲线: 对于新手来说,CMake的高级特性和内部工作机制需要一定的学习和实践才能掌握。重度抽象: CMake定义了许多高级的构建概念,对于需要细粒度控制构建过程的情况,可能会显得过于复杂。版本兼容性: CMake的不同版本之间存在差异,某些指令在不同版本的支持程度可能不同,需要注意。

2、Makefile

优点:

精细控制: Makefile为开发人员提供了对构建过程的细粒度控制,可以精确定义编译规则及其依赖关系。广泛应用: Make是UNIX和Linux环境中传统且广泛使用的构建工具,有丰富的文档和社区支持。简洁直接: 对于小型项目来说,编写一个简单的Makefile通常更直接。无需额外工具: 几乎所有的UNIX-like系统都预装了make工具,无需安装其他软件即可使用。

**缺点:**

可移植性差: Makefile通常和操作系统以及具体的shell环境绑定,需要为不同平台编写不同的Makefile。可读性: 对于大型项目,Makefile可能会非常复杂,难以读懂和维护,特别是在包含多个目标和复杂依赖关系时。重复劳动: 跨平台项目可能需要维护几套不同的Makefile,增加了工作量。功能限制: 相对于CMake,Make本身的功能较为基础,对于复杂的构建过程需要手动编写大量规则。

总结来说,CMake提供了更加抽象和高级的构建系统,对于跨平台的大型项目而言,其易用性和功能强大是巨大的优势。而Makefile对于小型项目和需要精确控制的构建过程也有它的用武之地。在具体选择时,需根据项目的实际需要、目标平台、团队的熟悉程度等因素综合考虑。

三、ubuntu安装CMake的几种方法

1、命令行安装

代码语言:bash
复制
sudo apt-get update
sudo apt install cmake

注意:此种方式安装的可能不是最新版本的CMake。

2、CMake源码编译安装

先检查是否有cmake

【1】下载CMake源码。CMake源码下载地址:https://cmake.org/download/

【2】解压CMake源码。

代码语言:bash
复制
tar -zxvf cmake-3.29.0.tar.gz

【3】进入解压后的CMake源码文件,执行bootstrap。

代码语言:bash
复制
./bootstrap

可能会报以下错误:

提示找不到C++编译器,执行以下命令安装一下即可:

代码语言:bash
复制
sudo apt-get install g++

然后重新执行./bootstrap。

可能会报以下错误:

提示安装 OpenSSL 开发包或使用 -DCMAKE_USE_OPENSSL=OFF 配置 CMake 以在不使用 OpenSSL 的情况下进行构建。选择安装开发包,执行以下指令即可:

代码语言:bash
复制
sudo apt-get install libssl-dev

然后再次执行./bootstrap。

【4】编译CMake源码。

代码语言:bash
复制
make

【5】安装

代码语言:bash
复制
sudo make install

3、sh安装

下载指定版本的sh文件:https://cmake.org/download/

安装指令:

代码语言:bash
复制
./cmake-3.29.0-linux-x86_64.sh

四、 验证安装版本

执行命令:

代码语言:bash
复制
cmake --version

出现以下版本信息说明安装成功,可是开始使用了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CMake介绍
  • 二、CMake和Makefile的优缺点
    • 1、CMake
    • 2、Makefile
  • 三、ubuntu安装CMake的几种方法
    • 1、命令行安装
    • 2、CMake源码编译安装
    • 3、sh安装
  • 四、 验证安装版本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档