1. CMake 简介
CMake 是一个跨平台的自动化构建系统工具,它被用来管理和控制软件构建过程。CMake 使用一个称为 CMakeLists.txt 的文本文件来描述项目的构建过程。这个文件包含了项目所需的各种设置和指令,比如源文件的位置、编译选项、链接器选项等。CMake 并不是一个编译器,而是一个前端工具,它可以生成不同构建系统的脚本,如 Unix Makefiles、Ninja build files、MSBuild project files 等,这样就可以在不同的操作系统和编译环境中构建项目。
CMake 的主要特点包括:
- 跨平台:可以在 Windows、macOS 和 Linux 上运行。
- 灵活性:支持多种编译器,如 GCC、Clang、Visual Studio 等。
- 功能丰富:支持复杂的项目结构,可以定义模块、库、可执行文件以及测试用例等。
- 社区支持:拥有庞大的社区支持和丰富的第三方模块库。
2. CMake 安装
CMake 目前最新版本是3.30,在 Ubuntu22 的高级软件包管理器 apt 中自带的 cmake 版本是3.22,一般使用系统自带的版本就行,如果有特定版本需求,则需要去官网下载。
简便方式:使用apt安装
# 更新包列表
sudo apt update
# 下载 CMake
sudo apt install cmake -y
去官网下载安装:
Linux系统最新版本下载连接:CMake_3.30
历史版本:版本列表
安装步骤
解压下载的文件: 将下载的压缩包放到一个合适的目录(如 /usr/local
或者你的主目录),然后解压它:
tar -zxvf cmake-version.tar.gz
移动到安装目录: 解压后,进入解压后的目录,然后将 CMake 移动到一个系统路径中,例如 /usr/local
:(version替换为实际版本号)
cd cmake-version
sudo mv bin /usr/local
设置环境变量: 如果你需要的话,可以将 CMake 的二进制文件路径添加到环境变量 PATH
中。通常情况下,如果将 bin
目录移动到了 /usr/local
,那么应该已经在这个路径中了。但为了确保,你可以编辑 ~/.bashrc
文件(针对当前用户)或者 /etc/environment
(针对所有用户):
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证安装: 安装完成后,可以通过运行以下命令来验证 CMake 是否正确安装:
cmake --version
这将显示安装的 CMake 的版本号。如果一切正常,你现在就可以开始使用 CMake 了。请注意替换上述命令中的 cmake-version
和 cmake-version.tar.gz
为实际下载的版本号。
3. CMake 使用
CMake 项目中,必不可少的是 CMakeLists.txt 文件,基于此可以让 cmake 帮你编写一个 Makefile 文件而无需你手动编写。
首先,我们构建一个基本的 cmake 项目。
目录结构:
zpy@Ubuntu-22:~/cmake_project$ tree ../cmake_project/
../cmake_project/
├── build
├── CMakeLists.txt
├── include
└── src
build:存放构建后的文件,包括可执行文件,Makefile文件等
include:存放头文件
src:存放源文件
CMakeLists.txt:cmake 项目配置信息
CMakeLists.txt 文件编写示例:
cmake_minimum_required(VERSION 3.10) # 设置所需的 CMake 最低版本
project(cmake_project VERSION 1.0) # 定义项目名称和版本号
# 指定 C/C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 添加可执行文件,test为可执行文件名
add_executable(test ${PROJECT_SOURCE_DIR}/src/*.cpp)
# 指定头文件的包含目录
include_directories(${PROJECT_SOURCE_DIR}/include)
头文件不是必须的,但源文件一定要有。
编译构建:
# 进入 build 目录
cd build
# 使用 cmake 生成 Makefile 文件
cmake ..
# 编译生成可执行文件
make
# 运行可执行文件
./test