clion在windows上默认使用bundled mingw(mingw-w64 13.1),开箱即用,无需额外安装软件;应通过settings→toolchains选择mingw并保持工具集为bundled mingw,由clion自动检测编译器与调试器路径,避免手动配置路径、混用工具链或在cmakelists.txt中硬编码编译器变量。

选对工具链比手动配路径更重要
CLion 在 Windows 上默认用 Bundled MinGW,开箱即用,不用装额外软件就能编译运行 C/C++ 项目。很多新手卡在“找不到编译器”或“CMake 报错”,其实不是路径没加对,而是工具链类型选错了——比如误选了 Cygwin 却没装 Cygwin,或选了 MSVC 却没装 Visual Studio Build Tools。
正确做法是:打开 File | Settings | Build, Execution, Deployment | Toolchains,点击 + → 选 MinGW → 工具集字段保持 Bundled MinGW(即 MinGW-w64 13.1)。CLion 会自动检测并填充 gcc、g++、gdb 路径,无需你手动填 C:\msys64\mingw64\bin\gcc.exe 这类地址。
- 如果想用自己装的 MinGW-w64(比如从 MSYS2 安装的),选
MinGW后在工具集下拉框里找对应路径,注意必须是mingw64子目录,不是msys64根目录 - 选
Microsoft Visual C++前,先确认已安装Visual Studio Build Tools(非完整 VS),且勾选了MSVC v143和Windows SDK - 不推荐混用:比如用 MSYS2 的
gcc+ CLion 捆绑的gdb,ABI 不兼容会导致调试时变量显示为空或断点失效
CMakeLists.txt 里别乱写编译器变量
常见错误是手动在 CMakeLists.txt 里硬编码 CMAKE_C_COMPILER 或 CMAKE_CXX_COMPILER,比如:
set(CMAKE_C_COMPILER "D:/mingw64/bin/gcc.exe")
这反而会覆盖 CLion 工具链配置,触发 CMake Warning: Manually-specified variables were not used by the project,甚至让构建失败。
CLion 的设计逻辑是:工具链决定编译器,CMake 只负责构建逻辑。你应该删掉所有显式设置编译器的语句,只保留项目定义和源码关联,例如:
cmake_minimum_required(VERSION 3.30) project(hello C) add_executable(hello main.c)
- CLion 启动 CMake 时会自动注入
-DCMAKE_C_COMPILER=...参数,你不需要、也不应该干预 - 若项目必须用特定标准(如 C17),用
set(CMAKE_C_STANDARD 17),它不影响工具链选择 - 跨平台项目慎用
find_program查找gcc,Windows 下可能找到系统 PATH 里的旧版本,绕过 CLion 配置
调试器选 Bundled GDB 是最稳的
调试失败十有八九出在 GDB 上。自定义 MinGW 安装的 gdb.exe 往往缺 Python 支持,导致 CLion 的 data renderers(如 STL 容器展开)失效,变量窗口只显示 <optimized out></optimized> 或直接空白。
解决方案很直接:在 Toolchains 设置页,Debugger 字段选 Bundled GDB(路径类似 clion\bin\gdb\bin\gdb.exe),不要选 “Custom GDB” 或系统自带的。
- 这个捆绑 GDB 是 CLion 专门打包的,带完整 Python 3.9+ 支持,能解析
std::vector、std::string等结构 - 如果你用的是 ARM64 Windows(如 Surface Pro X),Bundled GDB 仅支持远程调试,本地调试需换用 WSL2 工具链
- 调试中文字符串时乱码?不是 GDB 问题,是终端编码设置:右下角状态栏点
GBK→ 切成UTF-8,再重启调试会话
环境变量 PATH 其实可以不管
网上很多教程强调要把 MinGW 的 bin 目录加进系统 PATH,但对 CLion 来说这是多余操作。CLion 启动构建和调试进程时,会用自己的环境变量副本,只读取你在 Toolchains 里配置的路径,完全不依赖系统 PATH。
反而乱加 PATH 会埋坑:比如同时装了 TDM-GCC 和 MSYS2,PATH 里两个 gcc 冲突,命令行能跑,CLion 却报 gcc: error: unrecognized command-line option '-municode' —— 因为它调用了错误版本。
- 除非你要在终端里手动跑
gcc或cmake,否则不用碰系统 PATH - CLion 内置终端(Alt+F12)默认继承 IDE 环境变量,所以它看到的
gcc --version和构建时一致 - 如果非得加 PATH(比如配合其他工具),确保只保留一个 MinGW 发行版的路径,删掉所有重复或冲突项
Bundled MinGW + 默认 GDB + 干净的 CMakeLists.txt。











