初识cmake
ESP-IDF工具链依赖cmake和ninja来管理项目构建过程,今天先学习cmake。
CMake
CMake是一个开源的跨平台自动化构建系统,用于管理软件编译和构建过程。它可以生成各种平台的Makefile或者项目文件,使得软件的编译和构建过程可以在不同的平台和编译器上进行。CMake使用CMakeLists.txt文件来描述项目的构建设置和依赖关系。
CMake可以帮助开发人员轻松管理和构建大型项目。CMake的优势主要体现在以下几个方面:
跨平台:CMake支持多种平台,如Windows、Linux、macOS等。这意味着您可以使用相同的CMakeLists.txt文件在不同的平台上构建项目,而无需为每个平台编写特定的构建脚本。
自动生成构建文件:CMake可以根据项目配置生成各种构建系统的文件,如Makefile、Visual Studio解决方案等。这使得开发人员可以专注于编写代码,而不必花时间维护构建脚本。
易于维护:CMake使用简洁的语法,易于理解和维护。此外,CMake的模块化设计使得将项目分解为多个独立的组件变得更加容易,这有助于提高项目的可维护性。
强大的功能:CMake提供了丰富的内置函数和模块,支持各种编译器和构建工具。此外,CMake还支持自定义函数和模块,以满足特定项目的需求。
高效的构建:CMake支持并行构建,可以有效地利用多核处理器来加速编译过程。此外,CMake还支持增量构建,这意味着当您对项目进行修改时,只有受影响的部分需要重新构建,从而节省了大量时间。
社区支持:CMake有一个活跃的社区,开发人员可以在其中寻求帮助和分享经验。此外,许多开源项目已经采用CMake作为其构建系统,这意味着您可以在很多实际项目中找到CMake的使用示例。
CMake是一个强大且易于使用的构建工具,可以帮助开发者更轻松地管理和构建跨平台的软件项目。
安装和配置
安装CMake:
a. Windows:
- 访问CMake官方网站下载页:https://cmake.org/download/
- 选择适合您的操作系统的CMake安装程序(例如,Windows win64-x64 Installer)
- 下载并运行安装程序,按照提示进行安装
b. Linux:
- 在终端中运行以下命令:
1
2sudo apt-get update
sudo apt-get install cmake
c. macOS:
- 使用Homebrew安装CMake:
1
brew install cmake
- 如果您没有安装Homebrew,请访问https://brew.sh/ 以获取安装说明。
配置CMake:
a. Windows:
- 在安装过程中,选择“将CMake添加到系统PATH中”,以便在命令行中使用CMake。
- 您可以通过运行
cmake --version
来验证CMake是否已成功安装。
b. Linux和macOS:
- 在大多数情况下,CMake会自动添加到系统PATH中。
- 您可以通过运行
cmake --version
来验证CMake是否已成功安装。
使用CMake:
- 在项目根目录中创建一个名为
CMakeLists.txt
的文件。在此文件中,您可以使用CMake语法定义项目设置和依赖项。 - 在终端中,导航到项目根目录,然后运行以下命令生成构建文件:
1
2
3mkdir build
cd build
cmake .. - 运行
cmake --build .
命令以构建项目。
- 在项目根目录中创建一个名为
更多关于CMake的使用方法和语法,请查看CMake官方文档。
Windows Hello World
下面将以一个简单的Hello World程序为例,讲解CMake最基本的用法:
- 创建源代码文件
新建一个文件夹,例如叫”hello_world”,然后在这个文件夹中创建一个名为main.cpp的文件,内容如下:
1 |
|
- 创建CMakeLists.txt文件
在”hello_world”文件夹中创建一个名为CMakeLists.txt的文件,内容如下:
1 | cmake_minimum_required(VERSION 3.0) |
这个CMakeLists.txt文件的内容表示:
- 设置所需的CMake最低版本为3.0
- 定义一个名为”hello_world”的项目
- 设置C++11标准
- 添加一个可执行文件”hello_world”,源文件为”main.cpp”
- 使用CMake生成构建文件
打开命令提示符或PowerShell,进入”hello_world”文件夹,然后执行以下命令:
1 | mkdir build |
这将在”build”文件夹中生成构建文件,例如Makefile或者Visual Studio解决方案文件。
- 编译和运行程序
在”build”文件夹中执行以下命令来编译程序:
1 | cmake --build . |
然后在”build”文件夹中找到编译好的可执行文件”hello_world.exe”,双击运行或者在命令行中输入:
1 | # vs2022解决方案路径 |
这将会输出”Hello World!”。
通过上述步骤,可以看到CMake的基本用法,它可以帮助我们在不同的平台和编译器上自动生成构建文件,简化编译过程。
完整示例过程:
1 | ❯ mkdir build && cd build |