CMake快速入门

目的

C/C++的代码可以直接使用编译工具链进行编译,这种方式文件一多就不方便了。也可以编写 Makefile 然后使用 make 进行编译,当然写 Makefile 其实也挺繁琐。对于大型项目比较流行的是编写 CMakeLists.txt 然后使用 cmake 工具进行编译。

CMake is a tool to manage building of source code.
CMake 是一个用于管理源代码构建的工具。

官网:https://cmake.org/
在这里插入图片描述

目前 CMake 最新的正式版本是 3.28.4 ,官方也提供了渐进式的教程:https://cmake.org/cmake/help/v3.29/guide/tutorial/index.html

官方的渐进式教程从官方角度多的尽量介绍了官方提供的功能,不过对于入门来说稍稍生硬,对于入门使用来说可以有更快入门的方式的。这篇文章将介绍写更加简单的入门使用的方式。

环境准备

这里在 Ubuntu 22.04 下进行演示,系统安装完成后已经安装了如下内容,如果不安装可能后面 CMake 或是无法安装或是使用缺少组件:

# 基础升级与安装:
sudo apt update
sudo apt upgrade -y
sudo apt install -y build-essential
# sudo snap install code --classic # 安装 VS Code

之后就可以安装 CMake 了,本文编写时下面方式安装的就是 3.29.1 版本:

sudo snap install cmake --classic
# cmake --version # 查看版本

对于其它的系统,可以去 CMake 官网下载编译好的二进制文件进行安装。

快速入门

CMake 和 Make等其实是差不多的,像是一门脚本语言,本身并不能编译程序,而是用来描述编译规则的。 CMake 有自己的语法,有命令、变量、语句等,这些内容可以在官方参考手册中找到:
https://cmake.org/cmake/help/v3.29/

CMake 的基本的语法规则如下:

  • CMake脚本文件名为 CMakeLists.txt ,每个项目的每个目录下可以有一个脚本文件;
  • 使用 add_executable 命令来生成可执行文件,使用 add_library 命令来生成库;
  • 可以使用 include_directories 等命令添加头文件路径,使用 aux_source_directory 等命令添加源码路径;

下面是个最基础的演示:
在这里插入图片描述

上面演示中一个个添加了所有涉及的文件,如果文件多了这么操作其实是不方便的,也可以直接添加目录:
在这里插入图片描述

如果项目更大的情况下上面方式其实还是比较麻烦,完全可以由 CMake 语句和变量自动遍历所有目录进行添加:
在这里插入图片描述

除了直接生成可执行文件,也可以生成库或者引用库:
在这里插入图片描述
上面使用 add_subdirectory 添加子目录,会去调用子目录中的 CMakeLists.txt

总结

CMake的入门使用还是比较简单的,其目的是为了简化项目构建编译流程,相比Make的语法来说CMake的语法相对来说简单些,更多内容可以参考官方参考手册:
https://cmake.org/cmake/help/v3.29/

另外CMake其实是一个统称,包含了好几个工具,除了核心的cmake,还有ctest、cpack测试打包工具以及cmake-gui、ccmake等图形化工具。

CMake确实比Make简单很多,不过也由好多人觉得CMake还是挺复杂的,所有也诞生出一些别的工具来进行项目构建,比如 xmake

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CMake是一个跨平台的开源构建工具,它能够自动生成各种不同平台的构建脚本,简化了项目的构建过程。下面是一个300字快速入门CMake的实战教程。 首先,安装CMake并确保它被正确添加到系统的环境变量中。 接下来,在你的项目根目录下创建一个CMakeLists.txt文件,这个文件是CMake的配置文件,用来指导CMake生成项目的构建脚本。在CMakeLists.txt文件中,首先指定项目的名称和最低版本要求,例如: ``` cmake_minimum_required(VERSION 3.10) project(MyProject) ``` 然后,添加你的项目的源文件和头文件,使用add_executable或add_library命令指定它们的路径,例如: ``` add_executable(MyApp main.cpp foo.cpp bar.cpp) ``` 接下来,你可以添加依赖库,使用target_link_libraries命令指定它们的路径,例如: ``` target_link_libraries(MyApp ${CMAKE_DL_LIBS}) ``` 此外,你还可以指定编译选项,例如: ``` set(CMAKE_CXX_FLAGS "-std=c++11 -Wall") ``` 最后,你可以通过命令行执行cmake命令来生成构建脚本,并执行构建过程,例如: ``` mkdir build cd build cmake .. make ``` 在build目录中,你会找到生成的构建脚本及其生成的可执行文件(或库文件)。 通过这个简单的实战教程,你可以快速入门CMake,并且开始使用它来管理你的项目的构建过程。当然,在实际应用中,你还可以进行更多高级配置,例如添加条件编译、安装目标等。希望这个简短的回答能够给你一个基本的CMake入门指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naisu Xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值