本教程将引导您逐步创建和开发一个简单的CMake项目。我们将学习CMake作为构建系统的基础知识,以及用于CMake项目的CLion设置和操作。

注:

本教程使用的示例项目源代码可在GitHub上找到。

1. 简单的CMake项目

CMake是一个元构建系统,它使用名为CMakeLists的脚本来为特定环境(例如,在Unix机器上生成makefiles)生成构建文件。当您在CLion中创建新的CMake项目时,会在项目根目录下自动生成一个CMakeLists.txt文件。

让我们在CLion中创建一个新的CMake项目。

  1. 从主菜单中选择“File | New Project”。
  2. 在左侧窗格中选择“C++ Executable”。在本示例中,项目名称为cmake_testapp,选择的语言标准为C++17
    1.png
  3. 我们会得到一个默认项目,包含一个名为main.cpp的源文件和自动生成的根CMakeLists.txt文件,其中包含以下命令:
    2.png
命令描述
cmake_minimum_required(VERSION 3.24)指定CMake的最低要求版本,就像在默认的工具链中设置的一样。在大多数情况下,如果CMake可执行文件没有被有意更改,这将是捆绑的CMake版本。
project(cmake_testapp)根据我们在项目创建过程中提供的内容定义项目名称。
set(CMAKE_CXX_STANDARD 17)设置变量CMAKE_CXX_STANDARD的值为17,就像我们在创建项目时选择的一样。
add_executable(cmake_testapp main.cpp)添加cmake_testapp可执行目标,将从main.cpp构建。我们将在下面进一步介绍目标。

然后在CMake工具窗口中,您可以检查项目加载的进度和状态。要访问它,调用View | Tool Windows | CMake,或在工具窗口栏中切换到它:
3.png

注:

如果加载失败,CMake工具窗口将自动打开。

2. CMake目标和CLion配置

目标是使用CMake脚本构建的可执行文件或库。您可以在单个脚本中定义多个构建目标。

目前,我们的测试项目只有一个构建目标,即cmake_testapp。在第一次加载项目时,CLion会自动添加一个与此目标相关联的运行/调试配置:

4.png

单击“Edit Configurations”以查看详细信息。目标名称和可执行文件名称与CMakeLists.txt中指定的相同:

5.png

CLion会根据项目的CMake目标自动配置运行/调试设置。这是一个方便的功能,因为它确保运行和调试配置与实际的构建目标匹配。

3. 向现有目标添加文件

在某些情况下,您可能需要将新源文件添加到现有CMake目标中。让我们尝试在cmake_testapp目标中添加一个新的源文件。

  1. 在项目根目录中,创建一个名为utils.cpp的新源文件。将以下内容添加到utils.cpp中:

    #include <iostream>
    
    void printMessage() {
        std::cout << "Hello from utils!" << std::endl;
    }
  2. CMakeLists.txt文件中,找到与cmake_testapp目标关联的add_executable命令。我们将在此命令中添加utils.cpp源文件。

    add_executable(cmake_testapp main.cpp utils.cpp)
    • 您的CMakeLists.txt文件现在应如下所示:

      cmake_minimum_required(VERSION 3.24)
      project(cmake_testapp)
      set(CMAKE_CXX_STANDARD 17)
      add_executable(cmake_testapp main.cpp utils.cpp)
  3. 在CMake工具窗口中,单击“Reload Changes”以重新加载项目配置。

您现在已成功将新的utils.cpp文件添加到了cmake_testapp目标中。

4. 添加新目标

在CMake中,您可以定义多个目标,每个目标对应于一个可执行文件或库。让我们尝试添加一个新的库目标。

假设我们希望创建一个名为mylib的静态库,它由两个源文件lib.cpplib.h组成。

  1. 在项目根目录中,创建一个名为lib.cpp的新源文件。将以下内容添加到lib.cpp中:

    #include "lib.h"
    
    int add(int a, int b) {
        return a + b;
    }
  2. 在项目根目录中,创建一个名为lib.h的新头文件。将以下内容添加到lib.h中:

    #ifndef MYLIB_H
    #define MYLIB_H
    
    int add(int a, int b);
    
    #endif // MYLIB_H
  3. 修改CMakeLists.txt以添加新的库目标。在project()命令下方,添加以下内容:

    add_library(mylib STATIC lib.cpp)
    target_include_directories(mylib PUBLIC .)
    • 通过add_library命令,我们定义了一个名为mylib的静态库目标,并将lib.cpp添加为其源文件。通过target_include_directories命令,我们指定了包含目录,以便在项目中的其他位置访问lib.h头文件。
    • 您的CMakeLists.txt文件现在应如下所示:

         cmake_minimum_required(VERSION 3.24)
         project(cmake_testapp)
         set(CMAKE_CXX_STANDARD 17)
      
         add_executable(cmake_testapp main.cpp utils.cpp)
      
         add_library(mylib STATIC lib.cpp)
         target_include_directories(mylib PUBLIC .)
  4. 在CMake工具窗口中,单击“Reload Changes”以重新加载项目配置。

现在,您已成功添加一个名为mylib的新库目标。

5. 重新加载项目

在上面的步骤中,我们多次提到了“重新加载”项目。当您手动编辑CMakeLists.txt文件时,需要通过重新加载来应用更改。让我们总结如何执行此操作:

  • 在CMake工具窗口中,单击刷新按钮,以重新加载项目配置:

或者

  • 使用File | Reload CMake Project菜单项:

重新加载项目后,CLion将重新解析CMakeLists.txt文件并应用任何更改。

6. CMake预设和CLion CMake配置文件

CMake预设是一组用于CMake的命令行选项,允许您在不编辑CMakeLists.txt文件的情况下配置CMake项目。CLion支持CMake预设,并为其提供了一个用户界面。

要在CLion中配置CMake预设,请执行以下步骤:

  1. 在主菜单中,选择File | Settings (Ctrl+Alt+S)
  2. 在设置对话框中,转到Build, Execution, Deployment | CMake
  3. 在顶部选项卡中,找到并选择Presets
  4. 单击+按钮,然后选择所需的预设。您可以根据需要配置预设选项。
  5. 单击ApplyOK以保存更改。

此后,您可以使用CMake预设配置CMake项目,而无需手动编辑CMakeLists.txt文件。

7. 构建类型

CMake构建类型允许您指定不同的构建配置,例如“Debug”和“Release”。不同的构建类型可能具有不同的编译器标志和优化选项。

在CLion中,您可以轻松配置和切换不同的构建类型:

  1. 单击工具窗口中的构建变体栏:
  2. 选择所需的构建类型,例如“Debug”或“Release”。
  3. CLion将自动重新加载项目以应用新的构建类型。

结论

恭喜!您已经完成了这个简明的CMake教程。您学会了如何创建和配置CMake项目,向现有目标添加文件,添加新的构建目标,以及使用CMake预设和不同的构建类型。CMake是一个强大的构建系统,可以帮助您管理复杂的项目和跨平台开发。希望这个教程能够帮助您入门CMake的基础知识,以便在您的项目中更有效地使用它。

如果您想要进一步扩展您的CMake知识和技能,可以尝试在自己的项目中使用CMake,并在实际应用中学习。

标签: clion破解, clion破解教程, clion教程, clion基础教程, clion高级教程, clion核心教程, clion免费激活码, clion免费注册码, clion注册码在线生成, clion激活