Skip to content

CMake 教程

作者:ChatGPT 审核:M.T.Dickens

1. CMake 是什么?

CMake 是一个跨平台的开源工具,用于管理软件项目的构建过程。它使用一个名为 CMakeLists.txt 的简单文本文件来描述项目的构建过程和依赖关系。

2. 编写项目的 CMakeLists.txt

首先,我们来看一下您提供的简短的 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.10)
project(main)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

# Check if the SHUT_COUT option is provided
option(SHUT_COUT "Enable SHUT_COUT macro" OFF)

# Add a compile-time macro based on the SHUT_COUT option
if(SHUT_COUT)
    add_definitions(-DSHUT_COUT)
endif()

add_executable(main main.cpp)

3. CMake 的基本结构

  • cmake_minimum_required(VERSION 3.10): 指定 CMake 的最低版本要求。
  • project(main): 定义项目名称,这里为 "main"。
  • set(CMAKE_CXX_STANDARD 11): 设置 C++ 标准为 C++11。
  • set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall"): 添加编译器选项,这里是开启警告。
  • option(SHUT_COUT "Enable SHUT_COUT macro" OFF): 定义一个选项,用于控制是否启用 SHUT_COUT 宏,默认为关闭。
  • add_definitions(-DSHUT_COUT): 根据选项的值添加编译时宏定义。
  • add_executable(main main.cpp): 告诉 CMake 构建一个可执行文件,名为 "main",并且使用 "main.cpp" 作为源文件。

4. 编译项目

要使用 CMake 构建项目,您需要在项目的根目录下创建一个 build 文件夹,并在其中运行 CMake 命令。您可以按照以下步骤进行:

mkdir build
cd build
cmake ..

这将在 build 文件夹中生成用于构建项目的 Makefile 或其他构建系统的文件。

5. 构建项目

完成上一步后,在 build 文件夹中运行以下命令来构建项目:

make

这将使用 Makefile 中指定的规则来编译源文件并生成可执行文件。

6. 运行项目

构建完成后,您可以在 build 文件夹中找到生成的可执行文件 main,并通过以下命令运行:

./main

7. 总结

通过以上步骤,您已经学会了如何使用 CMake 构建一个简单的 C++ 项目。您可以根据项目的需要扩展 CMakeLists.txt 文件,添加更多的源文件、库文件和其他依赖项。 CMake 是一个强大而灵活的工具,能够帮助您管理复杂的项目构建过程。