构建CMake项目所需的设置被整合到一个CMake配置文件中。它包括工具链和构建类型,以及CMake选项,如生成器和环境变量。您可以为项目配置多个配置文件,以便例如使用不同的编译器或使用不同的设置构建目标。

要为项目设置配置文件,请转到“设置” | “构建、执行、部署” | “CMake”。您可以从查找操作(CtrlShift0A)(搜索CMake设置)中快速访问此对话框,或在“设置” | “编辑器” | “键盘映射”中为其指定一个快捷键。

CMake配置文件是针对每个项目进行配置的。

添加新配置文件

  1. 转到“设置” | “构建、执行、部署” | “CMake”。
  2. 单击 通用添加,CLion将在列表中添加一个新的配置文件。
  3. 根据需要更改配置文件名称、构建类型和其他设置。

使用配置文件构建

  1. 已启用的配置文件会列在运行/调试配置切换器中。在构建、运行或调试应用程序之前,选择所需的配置文件:
    1.png
  2. 单击 构建按钮 或调用其中一个可用的构建操作。此外,默认情况下,在运行 应用程序操作执行 或调试 应用程序操作启动调试器 之前会执行构建操作(您可以在配置设置中更改此设置)。

新项目的默认配置文件

  • 转到“文件” | “新项目设置” | “新项目的设置” | “构建、执行、部署” | “CMake”。
  • 配置要默认用于所有新项目的配置文件列表。

共享配置文件

您可以将CMake配置文件与项目一起共享到版本控制系统中。配置文件的设置存储在.idea目录下的cmake.xml文件中。

  • 选择要共享的配置文件并设置“共享”复选框:
    2.png

请注意,只有配置文件设置可以共享。对于所有配置文件,在编辑CMakeLists.txt或其他CMake配置文件时重新加载CMake项目选项是通用的,存储在workspace.xml中。

请确保为共享和本地配置文件使用不同的名称。如果共享配置文件和本地配置文件具有相同的名称,本地配置文件将优先,并且您将无法在设置中看到共享配置文件。

禁用/启用配置文件

您可以禁用当前未使用的配置文件,以节省加载时间并避免潜在的错误(例如,当您有一个不经常使用的远程配置文件,且机器已关闭)。

当您启用或禁用配置文件时,CLion会逐增地重新加载CMake,无论是否控制了在编辑CMakeLists.txt或其他CMake配置文件时重新加载CMake项目的选项。

重新加载CMake时,所有配置文件都会并行重新加载。这可能会对某些配置造成问题。要解决此问题,请在“设置” | “高级设置” | “CMake”中选择“按顺序重新加载CMake配置文件”选项。

有以下几种选项:

  • 在“设置” | “构建、执行、部署” | “CMake”中清除或设置“启用配置文件”复选框。禁用的配置文件在列表中将呈灰色。
    3.png
  • 要禁用已成功加载的配置文件,请在CMake工具窗口中的配置菜单中选择“禁用此配置文件”:
    4.png

从此菜单中,您还可以启用以前禁用的任何配置文件:
5.png

  • 如果某个配置文件未能加载,您可以使用CMake工具窗口中的“禁用配置文件”选项禁用它:
    6.png

CMake选项

编译器标志

在CLion中,您可以在配置文件的CMake选项字段或CMakeLists.txt脚本中指定编译器标志。

  • 使用CMake选项:

在“设置” | “构建、执行、部署” | “CMake”中选择配置文件,然后编辑CMake选项字段。

使用-DCMAKE_CXX_FLAGS变量(或C项目的CMAKE_C_FLAGS)。例如,-DCMAKE_CXX_FLAGS="-Wall -Wextra"

您可以在缓存变量表中更改现有CMake变量的值。

7.png

CLion还可以使用传递给CMake选项的--preset参数。从指定的预设中加载到构建类型、工具链和构建目录设置的数据。

  • 在CMakeLists.txt中:

或者,在您的CMakeLists.txt脚本中添加以下行:set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra")

CMake工具链文件

  • 在CMake选项中,您可以使用CMAKE_TOOLCHAIN_FILE变量指定CMake工具链文件。

CMake缓存变量

CMake缓存变量可以在缓存变量表中查看和编辑:

8.png

您可以在CMake选项字段或CMakeLists.txt文件中添加新变量。用户定义的变量位于表的顶部。用户定义变量的值以粗体显示,其他变量的更改值以斜体显示:

9.png

要从CMake选项字段中删除变量,请在表中选择它,然后单击 移除按钮 或按下AltDelete。变量将从表中删除,或在重置CMake缓存后其值将被设置为默认值。

要放弃当前会话中所做的更改,请选择变量,然后单击 还原图标 或按下Ctrl Z

高级CMake变量默认情况下是隐藏的,但您可以通过选择“显示高级”复选框来显示它们:

10.png

CLion还会在CMake缓存变量的工具提示中显示简短描述:

11.png

IDE会将布尔值显示为复选框。在复选框旁边,您可以看到布尔变量后面的实际值。以下值被视为False0OFFNONIGNORENOTFOUND、空字符串,以及以后缀-NOTFOUND结尾的值。在所有其他情况下,该值被视为True

当您在CLion用户界面中选中或取消选中复选框时,将使用以下值对来配置选项值:0-1OFF-ONNO-YESFALSE-TRUEN-Y。对于任何其他值,IDE将复选框状态转换为OFF-ON

命名的布尔常量是不区分大小写的。

生成器

在生成器字段中,您可以在CMake生成器之间切换。使用所选工具链的默认值或从预定义列表中设置其他生成器:

12.png

使用默认值CLion在默认情况下使用Ninja或Makefiles作为默认生成器。以下情况下使用Ninja:所选的工具链是本地的(这排除了远程、Docker和WSL);选择的工具链在Ninja中配置的构建工具(捆绑的Ninja是默认构建工具);CMake版本为3.20或更高;项目在CLion 2021.3中首次创建或打开;高级设置中的“为CMake 3.20和更高版本使用传统生成器”复选框未被选中。在所有其他情况下,将使用Makefiles生成器。
让CMake决定如果选择此选项,CLion不会显式地强制使用任何生成器,CMake将决定使用哪个生成器。默认情况下,这由CMAKE_GENERATOR环境变量控制。

或者,您可以通过-G在CMake选项中设置生成器。当使用生成器字段时,CLion会自动更新CMake选项,反之亦然:

13.png

实际的构建工具取自所选的工具链。

当前限制

  • CLion使用CMake文件API,该API首次出现在CMake v3.14中。但是,CLion从CMake v3.15开始支持它,因此如果您决定切换到捆绑的CMake之外的版本,请确保使用3.15.x或更高版本。
  • 对于多配置生成器,如Ninja Multi-Config、Xcode或Visual Studio,CLion仅使用与CMake配置文件中指定的构建类型相对应的配置(CPP-20890)。

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