clion 在 linux 主机上直接开发 c++ 项目是最轻量可控的方式,需安装 build-essential 等基础工具,其 toolchains 默认自动识别 /usr/bin/gcc、g++、gdb;在 windows 上则推荐 wsl2 工具链,通过 settings → toolchains → wsl 自动配置编译器与 gdbserver,并确保 cmake 路径为 wsl 内路径。

CLion 本身不直接编译 Linux 二进制,但能通过本地工具链(Linux 系统)或远程工具链(Windows/macOS 上连接 Linux 主机)完成完整开发闭环。关键不在“能不能”,而在你当前操作系统和目标部署环境的组合——选错路径会导致 CMake 找不到 gcc、gdb 启动失败、甚至 std::filesystem 调用返回 ENOSYS。
Linux 主机上直接用 CLion 开发 C++ 项目
这是最轻量、最可控的方式,适合 Ubuntu/Debian/CentOS 等原生 Linux 桌面环境。
- 确认系统已安装基础构建工具:
sudo apt install build-essential(Ubuntu/Debian)或sudo yum groupinstall "Development Tools"(CentOS/RHEL) - CLion 启动后,在
Settings → Build, Execution, Deployment → Toolchains中,默认会自动探测到/usr/bin/gcc、/usr/bin/g++、/usr/bin/gdb—— 不要手动覆盖为 Windows 路径或 WSL 路径 - 若使用 Clang:
sudo apt install clang lldb,然后在 Toolchains 中切换编译器为/usr/bin/clang++,调试器为/usr/bin/lldb - 注意:CMake 默认生成器是
Unix Makefiles;如想提速,可装ninja-build并在CMake → Generation → Generator中改为Ninja
Windows 上用 CLion 开发 Linux C++ 项目(WSL2 工具链)
这是 Windows 用户最实用的方案,避免虚拟机开销,又能获得真实 Linux 环境行为。
- 先确保 WSL2 已启用并安装好发行版(如 Ubuntu-24.04),且已运行
sudo apt update && sudo apt install build-essential gdbserver cmake ninja-build - CLion 中添加工具链:
Settings → Toolchains → + → WSL,自动列出已安装的 WSL 发行版;选中后它会自动配置gcc、g++、gdbserver路径(如/usr/bin/gcc) - 关键点:
gdbserver必须存在且可执行,否则调试时会报错Cannot run program "gdbserver": error=2, No such file or directory - CMake 配置路径需指向 WSL 内路径(如
/home/yourname/project/build),而非 Windows 路径(C:...);CLion 会自动做路径映射,但手动填错会导致CMake Error: The source directory does not exist - 文件操作权限问题常见:WSL 中创建的文件在 Windows 资源管理器里可能显示为只读,但在 CLion 内编辑、构建不受影响
Windows/macOS 上用 CLion 远程开发 Linux 项目(SSH 工具链)
适用于目标环境是服务器、嵌入式板卡或 CI 构建机等无法本地跑桌面 GUI 的场景。
- 远程主机必须开启 SSH 服务(
sudo systemctl enable --now ssh),并确保防火墙放行 22 端口 - CLion 中添加工具链:
Settings → Toolchains → + → Remote Host,填入 IP、用户名、密码(或密钥);连接成功后,手动指定远程cmake(如/usr/bin/cmake)、gcc、g++、gdbserver路径 - 部署设置必须配对:在
Settings → Build, Execution, Deployment → Deployment中新建配置,选择同一 SSH 连接,并设置远程路径(如/home/user/myproject);勾选Upload external changes automatically可实现保存即同步 - 常见坑:
gdbserver版本与本地 GDB 不兼容(尤其老版 Ubuntu 自带 gdbserver 6.x 无法配合 CLion 2024+ 的 GDB 13+);建议远程升级:sudo apt install gdbserver或从源码编译新版 - 远程构建日志默认不实时刷新;可在
Run → Edit Configurations → Logs中勾选Show console when standard output/error is printed提升可观测性
CMakeLists.txt 和跨平台代码要注意什么
即使工具链配对成功,CMakeLists.txt 写法和源码逻辑仍可能让 Linux 构建失败。
- 避免硬编码 Windows 路径分隔符:
"C:\data\config.txt"→ 改用std::filesystem::path("data") / "config.txt" - Linux 下没有
conio.h、getch();替代方案用termios.h+read(STDIN_FILENO, ...),或直接依赖 Qt/SDL 等跨平台库 -
find_package(Qt6 REQUIRED)在 Linux 上需提前安装libqt6-dev(Ubuntu)或qt6-base-devel(Fedora);否则 CMake 报错Could not find a package configuration file provided by "Qt6" - 如果项目含
add_compile_definitions(_GNU_SOURCE),注意 macOS 不支持该宏;应改用target_compile_definitions(mytarget PRIVATE _GNU_SOURCE $:_GNU_SOURCE>) - 调试时发现断点不命中?检查是否启用了
-g(CLion 默认开启),并确认 CMake 构建类型不是Release(RelWithDebInfo更稳妥)
真正容易被忽略的是:CLion 的 Toolchain 设置是**按项目生效**的,而不是全局。换一个项目,哪怕在同一台机器上,也得重新检查它绑定的是本地 GCC、WSL 还是远程 SSH —— 很多人在多项目切换后莫名其妙编译失败,根源就在这里。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











