目录

  1. 实例概述
  2. 项目结构
  3. CMakeLists.txt 详解
  4. 构建过程
  5. 安装与清理
  6. 参考资料

实例概述

在本实例中,我们将通过一个简单的 C++ 项目来演示如何使用 CMake 进行构建。项目包含一个源文件 main.cpp,编译后生成一个可执行文件。我们将创建一个基本的 CMakeLists.txt 文件,使用 CMake 生成构建文件,并最终编译和运行该项目。


项目结构

假设我们有以下简单的项目结构:

MyProject/
├── CMakeLists.txt
└── main.cpp

其中:

  • CMakeLists.txt:CMake 配置文件。
  • main.cpp:C++ 源代码文件。

main.cpp 文件的内容如下:

#include <iostream>

int main() {
    std::cout << "Hello, CMake!" << std::endl;
    return 0;
}


CMakeLists.txt 详解

MyProject 目录下创建 CMakeLists.txt 文件,并添加以下内容:

cmake_minimum_required(VERSION 3.10)  # 设置最低 CMake 版本要求
project(MyProject VERSION 1.0)         # 设置项目名称和版本

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 添加源文件
add_executable(MyExecutable main.cpp)  # 生成可执行文件 MyExecutable

文件内容说明:

  • cmake_minimum_required(VERSION 3.10):指定该项目支持的最低 CMake 版本。
  • project(MyProject VERSION 1.0):设置项目名称为 MyProject,版本为 1.0
  • set(CMAKE_CXX_STANDARD 11):设置 C++ 标准为 C++11。
  • add_executable(MyExecutable main.cpp):编译 main.cpp 文件,并生成名为 MyExecutable 的可执行文件。

构建过程

1. 创建构建目录

在项目根目录下创建一个单独的构建目录,以保持源代码目录的整洁。

mkdir build
cd build

2. 运行 CMake 配置命令

build 目录中,运行以下命令来配置项目并生成构建文件(例如 Makefile 或 Visual Studio 工程文件):

cmake ..

该命令会让 CMake 查找项目根目录中的 CMakeLists.txt 文件,并生成适合当前平台的构建文件。

3. 编译项目

配置完成后,使用以下命令来编译项目。CMake 会调用底层构建工具(如 make)来执行编译:

cmake --build .

这将会编译源代码并生成可执行文件 MyExecutable

4. 运行项目

编译完成后,执行生成的可执行文件:

./MyExecutable

输出:

Hello, CMake!


安装与清理

1. 安装项目(可选)

如果项目需要安装,可以在 CMakeLists.txt 中定义安装规则,并使用 cmake --install 命令进行安装。例如,假设你希望将可执行文件安装到 /usr/local/bin 目录,可以在 CMakeLists.txt 中添加以下内容:

install(TARGETS MyExecutable DESTINATION bin)

然后执行安装命令:

cmake --install .

2. 清理构建

如果你需要清理构建生成的文件,可以手动删除构建目录中的内容:

rm -rf build/*

或者,直接删除整个 build 目录并重新创建它:

rm -rf build
mkdir build
cd build
cmake ..


参考资料