CLion 2025.2 Help

工具链

对于 CMakeMakefile编译数据库 项目,在 CLion 中,工具链是一组构建和运行应用程序所需的所有工具:CMake 可执行文件(CMake 项目)、构建工具、C/C++ 编译器、调试器二进制文件以及工作环境。

当您开始使用 CLion 时,已经有一个默认工具链可用。 尽管您可以在开发中使用它,但您可能还希望根据项目的需求调整工具集(例如,切换到另一个编译器)。

选择您正在使用的项目类型以了解更多信息:

CMake 项目

CLion 使用配置的工具链来构建和运行您的 CMake 应用程序。 设置工具链后,您可以在 CMake 配置文件 设置中选择它。

Makefile 项目

CLion 在加载 Makefile 项目时使用选定的工具链。 工具链还为 本机应用程序 配置提供调试器。

配置工具链后,您将能够在 设置 | 构建、执行、部署 | Makefile 中选择它。

请参阅 Makefiles:调整项目设置

编译数据库项目

CLion 使用选定的工具链来解析编译数据库项目文件。

配置工具链后,您将能够在 设置 | 构建、执行、部署 | 编译数据库 中选择它。 请注意, 远程 工具链不支持编译数据库项目。

请参阅 编译数据库:检查工具链

自定义构建目标和应用程序

选定的工具链为自定义运行/调试配置提供环境和调试器。 请参阅 创建自定义构建目标

创建工具链

  1. 转到 设置 | 构建、执行、部署 | 工具链 并点击 以添加新工具链。

    观看此视频以了解 Windows 工具链选项的概述:

    选择一个预定义的工具链设置(MinGWCygwinVisual StudioWSL)、 远程主机Docker )或配置自定义工具链(系统):

    Windows 工具链选项

    在 Linux 或 macOS 上,选择您的工具链类型: 系统 用于本地项目, 远程主机Docker 用于 远程开发

    macOS 工具链
  2. 要通过脚本初始化工具链环境,请点击 添加环境 并指定文件路径。 有关更多信息,请参阅 下文

  3. 如果需要,请从捆绑的 CMake 切换到您选择的自定义 CMake 安装。

  4. 默认情况下,CLion 将使用捆绑的 Ninja 作为 构建工具。 您可以指定其他您选择的构建工具,例如 make

  5. CLion 将尝试检测 C/C++ 编译器。

    如果您更喜欢使用自定义编译器而不是检测到的编译器,请在 C 编译器C++ 编译器 中提供路径。 请参阅 切换编译器

  6. 选择 调试器

    在 macOS 上,您可以在捆绑的 LLDB(版本 19.1.3)和自定义 GDB 之间切换。

    在 Windows 上,选项包括捆绑的 GDB(版本 15.2)、自定义 GDB 和用于 MSVC 的 LLDB(版本 9.0.0)。

    请注意,目前不支持自定义 LLDB。

  7. CLion 会验证您的选择,并在工具或包缺失时通知您。

  8. 配置完成后,点击 确定 以保存。

通过脚本初始化工具链环境

与手动设置环境相比,您可以将 CLion 指向一个环境文件——一个为您的项目初始化环境的 shell 脚本。 例如,当您需要初始化编译器变量、添加自定义变量或修改 PATH 时,这会很有帮助。

支持以下环境文件:

  • bat 文件 — Windows MinGW 和 MSVC 工具链。

  • ps1 文件 — Windows MinGW、Cygwin 和 MSVC 工具链。

  • shell 文件 — Windows Cygwin、本地 Linux/macOS、WSL、Docker 和远程工具链。

大多数框架都包含环境脚本,您可以直接使用。 请参阅 ESP-IDF 在 macOS 上的示例。 您还可以创建自己的脚本,例如,当您需要源多个环境文件时:请参阅 ESP-IDF on Windows 的示例。

  1. 在工具链设置中,点击 添加环境 ,然后点击 从文件

    设置脚本以初始化环境
  2. 环境文件 字段中,指定脚本的路径:

    通过脚本初始化环境
  3. 如果脚本加载出现问题,您将收到通知。 CLion 还会检查脚本加载时间,并在执行时间过长时终止执行。

    环境脚本加载报告

设置备用 shell

  • 要在 Linux(本地或远程)、 WSLDocker 上加载环境文件,CLion 会在默认登录 shell 中调用 source. ,具体取决于 $SHELL 变量。

    如果 $SHELL 为空,CLion 将使用 Advanced settings用于加载环境的备用 shell 字段中指定的 shell。

最后修改日期: 2025年 9月 26日