CLion本身不带编译器,必须手动配置工具链,否则报“No CMAKE_C_COMPILER could be found”;Windows下MinGW-w64适合新手和跨平台项目,MSVC适合企业级Windows开发;CMakeLists.txt中禁止硬编码编译器路径,应统一在Settings→Toolchains中配置。

CLion 本身不带编译器,必须手动配置可用的工具链(Toolchain),否则新建项目后点运行会直接报错“CMake Error: No CMAKE_C_COMPILER could be found”或根本无法加载项目。
Windows 下选 MinGW-w64 还是 MSVC?
两者都能用,但适用场景不同:
- MinGW-w64(推荐新手):生成纯 Windows 原生可执行文件,不依赖 Visual Studio 运行时;适合轻量项目、跨平台移植、嵌入式学习。需确认安装时选
x86_64+posix线程模型 +seh异常处理。 - MSVC(推荐企业/大型项目):与 Visual Studio 工具链一致,调试体验更稳定,对 Windows API 和 COM 支持更好;但生成的二进制需配套
vc_redist.x64.exe才能在其他机器运行。 - 别混用:比如用 MSYS2 的
mingw64终端装了 GCC,又在 CLion 里指向C:\msys64\mingw64\bin\g++.exe—— 这可以;但若同时把C:\msys64\usr\bin\gcc.exe(MSYS2 自身的)也加进去,就可能因 ABI 不兼容导致undefined reference to `__cxa_begin_catch'类链接错误。
CMakeLists.txt 里硬编码编译器路径是错的
CLion 的 Toolchains 配置是 IDE 层面的,CMakeLists.txt 中不应再写死 set(CMAKE_CXX_COMPILER "...")。否则会出现:
- CLion 提示
CMake Warning: Manually-specified variables were not used by the project: CMAKE_CXX_COMPILER - 切换构建类型(Debug/Release)时编译器被覆盖失效
- 团队协作时路径不一致,别人拉代码直接 cmake 失败
正确做法:只在 File | Settings | Build, Execution, Deployment | Toolchains 中指定 C++ Compiler 路径(如 C:\mingw64\bin\g++.exe),CLion 会自动注入到 CMake 调用中。CMakeLists.txt 里保留干净的 project(...) 和 add_executable(...) 即可。
macOS / Linux 下 clang/g++ 识别失败?检查 PATH 和权限
常见现象:CLion 显示 “No valid toolchain found”,即使终端里 clang++ --version 正常返回。
- macOS 上 Xcode Command Line Tools 未安装:运行
xcode-select --install,装完重启 CLion - Homebrew 安装的 GCC(如
brew install gcc)路径不在默认 PATH:CLion 启动方式很重要 —— 若从 Dock 或 Spotlight 启动,它不读 shell 的~/.zshrc;应改用终端命令open -a CLion启动,或在 CLion 设置里勾选 “Shell environment”(Settings → Appearance & Behavior → System Settings → Shell path) - Linux 下权限问题:某些发行版(如 Fedora)的
gcc-c++包名是gcc-c++,但实际二进制是/usr/bin/g++;如果用sudo dnf install gcc-c++没报错,却仍找不到编译器,请确认which g++是否有输出,且该路径可读可执行
最容易被忽略的是:CLion 的 Toolchain 配置只影响当前项目(或默认模板),新建项目时若没选对已配置的 Toolchain,它会回退到自动检测逻辑 —— 此时即使你本地装了 GCC,也可能因 PATH 未生效而失败。每次新建项目后,务必检查右下角状态栏是否显示正确的编译器名称,而不是 “No toolchain”。


















