
CLion 是我这几年用得最顺手的 C/C IDE没有之一。作为 JetBrains 家族的成员它几乎把 IntelliJ 那套成熟的工程管理、代码分析和重构能力搬到了 C/C 开发上配合 CMake 原生支持开箱即用。这篇 CLion 使用教程我会把从安装配置、打开 sln 工程、配置 JNI 环境到嵌入式 STM32 开发、插件安装和问题排错的完整流程梳理一遍所有内容都是我实际踩过坑之后沉淀下来的不是那种复制粘贴的文档。先说清楚适合谁。如果你正在被 VS Code 的插件配置和编译 task 折腾到崩溃或者刚从一个平台迁移到另一个平台又或者是每天在 Keil/CubeIDE 里挣扎的嵌入式开发者这篇文章都能帮你省下大量时间直接把 CLion 变成主力开发工具。我也会顺带讲清楚那些让人困惑的高频问题中文乱码、插件商店搜不到、多个目标程序怎么调试以及 JNI 和 STM32 的配置细节。1. 为什么我最终选择了 CLion它到底能解决什么问题1.1 CLion 不是又一个 IDE它是 C/C 开发效率的放大器如果你常年写 C/C一定经历过这种尴尬写 VS Code 插件配置比写代码还久换台电脑环境就崩Visual Studio 在 Windows 上香但一跨到 Linux/macOS 就重度水土不服嵌入式方向的朋友更是苦于在 Keil、CubeIDE、IAR 之间来回切换。CLion 的出现正好卡在这个痛点上。作为 JetBrains 家族专门为 C/C 打造的 IDE它对 CMake 的原生支持几乎是教科书级别的打开 CMakeLists.txt 就能自动索引、构建、运行和调试。同时它内置了性能非常可观的代码分析引擎不夸张地说全局搜索、跨文件重命名、智能补全这些基础操作都流畅得像在写 Java 一样顺滑。CLion 能做什么一句话就能总结把 CMake 生态、C/C 编译器、调试器、嵌入式工具链整合成一个完整的图形化工作流。适合谁来用三类人最值得试一是刚接触 C/C、被命令行程式编译折腾到怀疑人生的学生二是做跨平台项目需要同时维护 Windows/Linux/macOS 版本的后端和客户端开发者三是从 Keil/CubeIDE 转向统一 IDE 的嵌入式开发人员。1.2 关于“最新破解版”我劝你三思每次搜 CLion 教程总有朋友问“有没有最新破解版”。我理解学生党的预算压力但破解版的成本远比一张正版许可高得多。稍微说几个实际理由。第一CLion 的破解工具大多要求关闭安全防护这等于把电脑系统权限直接交给来路不明的程序风险非常高。第二破解版通常只能固定在某个旧版本上JetBrains 的插件生态、构建工具链都在不停更新遇到 bug 连升级都升不了。第三也是我亲身体会最深的一点破解版因为改了 IDE 的证书验证逻辑容易和 CMake、调试器等底层组件出现奇怪的兼容问题出了问题网上几乎找不到解决方案。所以更稳妥的做法是如果你是学生、教师或开源项目维护者直接去 JetBrains 官网申请免费许可学生认证通过后可以免费使用所有 JetBrains IDE。工作党可以先试用 30 天确定能满足需求再按年付费合理规划预算。2. 安装配置从 0 到 1工具链才是真正的主线任务2.1 下载安装包用 Toolbox 还是独立安装包CLion 的下载页面在 JetBrains 官网目前最新版本对 Windows、macOS、Linux 都有对应安装包。我的建议是如果你机器上装了多个 JetBrains 产品比如同时用 CLion 和 IntelliJ IDEA优先用 JetBrains Toolbox 统一管理。它能自动发现新版本、切换新旧版本、保留不同版本的配置在插件兼容性出问题时可以随时回滚。如果只装 CLion 一个 IDE直接下载独立安装包也挺省事。Windows 下载 .exemacOS 下载 .dmgLinux 下载 tar.gz 后解压到 /opt 等目录运行 bin/clion.sh 即可。装完先别急着写代码第一步是确认 JDK 和构建工具链的情况——CLion 自带 JetBrains Runtime 可以启动 IDE但编译 C/C 代码完全依赖外部工具链这一步没配好后面全是红色波浪线。注意CLion 本身只是编辑器加构建调度器它不会内置 GCC、Clang 或 MSVC所以安装 IDE 只是完成了一半工具链才是让整个工程跑起来的关键。2.2 工具链配置Windows、macOS、Linux 三平台实操打开 CLion 后先进入 Settings → Build, Execution, Deployment → Toolchains。这里能看到当前检测到的编译器列表CLion 会根据系统环境自动扫描常见的 GCC、Clang、MSVC。如果没有被识别就手动加一个。Windows 平台我推荐安装 MinGW-w64。如果你用 MSVCCLion 也能识别 Visual Studio 的编译环境但前提是必须安装好 Build Tools 并保持 VS 版本在受支持范围内。日常写算法题、做小项目MinGW 更轻量要调 Windows API 或做 Windows 桌面开发时再用 MSVC 工具链。macOS 平台什么都不装也能用。Xcode Command Line Tools 自带的 clang 会被 CLion 自动识别。如果之前没装过在终端执行 xcode-select --install 装一下就行。Linux 平台用系统包管理器安装 build-essential 或对应的 GCC 开发包。Ubuntu/Debian 系就是 sudo apt install build-essential cmake ninja-build。工具链配完之后再去 Settings → Build, Execution, Deployment → CMake 确认 CMake 路径。如果系统里没装 CMakeCLion 会提示Windows 可以通过包管理器或官方二进制安装Linux 就 apt install cmake。三步走完之后新建一个空工程试着 Build 一次绿色小锤子能亮起来就说明环境通了。2.3 中文输出乱码的根源与三种解法这是搜索热度极高的一个问题。代码里 printf(中文)控制台却乱码一片你是不是也遇到过这里的根源往往有两个源码文件的编码和终端控制台的编码不一致。CLion 默认把源码存成 UTF-8这没问题。但 Windows 下默认的控制台代码页可能是 GBK代码页 936UTF-8 的中文字节流按 GBK 解码自然就是乱码。最简单的临时方案是在运行前执行 chcp 65001 把控制台切到 UTF-8但这样做每次启动都要手动敲而且对已打开的中文标题窗口无效。更推荐的做法是直接从代码层面解决。以 Windows MinGW 为例在 main 函数开头调用 Windows API#ifdef _WIN32 #include windows.h #endif #include iostream int main() { #ifdef _WIN32 SetConsoleOutputCP(CP_UTF8); #endif std::cout 中文输出测试 std::endl; return 0; }同时在 Settings → Editor → File Encodings 中把 Global Encoding、Project Encoding 和 Default encoding for properties files 全部设为 UTF-8。再在 Settings → Build, Execution, Deployment → Console 中把 Default Encoding 也改成 UTF-8。三管齐下标题栏、Log 输出、中文注释都不会乱。注意以上方法对 Windows 有效。macOS/Linux 的终端天然 UTF-8几乎不会有中文乱码问题如果遇到检查一下远程开发环境的 LANG 环境变量是不是 zh_CN.UTF-8。3. 手把手把各种工程塞进 CLionCMake、sln、多目标调试3.1 最顺的工作流直接打开 CMake 工程CLion 对 CMake 的支持是它的看家本领。拿到一个已存在的 CMake 项目直接 File → Open 选择含 CMakeLists.txt 的根目录CLion 会自动生成 cmake-build-debug 等构建目录并完成索引。首次加载大项目会慢一些等右下角的进度条跑完代码高亮和跳转就全部可用了。如果 CMakeLists.txt 里有新增源文件但 IDE 没感知到不用重启点一下 CMake 工具窗口里的 Reload CMake Project 图标或者把 CMakeLists.txt 里的任意位置加个空格再撤销保存都能触发重新加载。这个操作我几乎每天都在按已经是肌肉记忆了。3.2 打开 Visual Studio 的 sln 工程怎么处理在热词里出现“clion打开sln工程”说明确实有不少人想把 Visual Studio 的解决方案迁移到 CLion。CLion 从 2021.1 版本开始支持直接打开 .sln 文件原理是在后台把 MSBuild 工程解析成 CLion 能识别的中间格式然后通过 MSVC 工具链编译。具体操作很简单File → Open选择 .sln 文件确认CLion 会自动进入解决方案观察窗口。但有一个前提条件——你的机器上必须装好了 Visual Studio 或 Build Tools并配置好 MSVC 工具链。没有 MSVC打开后只会看到一堆解析错误。这里必须泼一盆冷水如果 sln 工程重度依赖 Visual Studio 的自定义 MSBuild Targets、旧版 MFC 控件、预编译设置或某些私有 NuGet 包CLion 的解析器不一定能完整还原可能只会加载部分项目。从我的迁移经验来说如果 sln 是你团队唯一维护方建议先用 CMake 把核心逻辑模块化重写一遍再整体迁到 CLion如果只是临时想看看代码直接打开能跑自然最好跑不了也别硬扛退回用 VS 维护。3.3 同一项目里多个目标程序调试时怎么选在热词中还有一个高频问题“clion调试同一项目多个目标程序”。这个场景在大型项目中很常见一个 CMakeLists.txt 里同时 add_executable 出 server 和 client 两个可执行文件或者生成了可执行程序加测试程序。首先保证每个目标都写清楚了。CMakeLists.txt 里大致是这样cmake_minimum_required(VERSION 3.20) project(multi_targets CXX) set(CMAKE_CXX_STANDARD 17) add_executable(server server.cpp common.cpp) add_executable(client client.cpp common.cpp) add_executable(test_unit test_unit.cpp common.cpp)CLion 会自动在右上角运行配置下拉框中列出 server、client、test_unit 三个可执行目标。想调试哪个就在下拉框里选中它然后点旁边的 Debug 图标或按 CtrlF5断点会命中所选目标的代码。这里有个关键细节下拉框显示的可能是 CMake Application 加目标名别选错。如果你还需要同时启动多个目标比如先起 server 再起 clientCLion 没有像 VS 那样直观的“多启动项目”按钮但可以借助 Run/Debug Configurations 里新增一个 Compound 配置。先为每个目标单独建好运行配置再在运行配置面板里创建 Compound 配置把 server 和 client 加进去点一次运行就能启动多个进程。不过多进程调试还是建议用 attach 方式连到已经启动的进程上不要指望一键搞定一切。4. 在 CLion 中配置 JNI 环境搞定 Android 原生开发4.1 JNI 环境到底需要准备哪些东西JNIJava Native Interface是 Java 和 C/C 之间的桥梁做 Android NDK 开发、高性能计算音视频编解码时都会碰到。CLion 虽然不做 Android UI但完全能承担 native 层代码的编写、编译和调试。配置之前你机器上要有一个 JDK版本 8 以上因为 JNI 头文件 jni.h 就躺在 JDK 的 include 目录里一个 C/C 编译器这步和前面的工具链配置可以复用以及一个能生成 JNI 头文件的工具JDK 自带的 javac 就支持 -h 参数无需额外安装。我见过不少新手在配置时卡住原因是翻遍磁盘也找不到 jni.h。不要急先验证 JDK 装好没有终端执行 java -version再执行 javac -version。前者只能说明 JRE 存在后者能确认 JDK 完整。确保 JAVA_HOME 环境变量已经设置到 JDK 根目录JNI 配置就成功了一半。4.2 从 Java 声明到 CLion 构建动态库的完整步骤第一步先在 Java 侧写一个 native 方法并生成头文件。假设包名是 com.example.jnidemo类名是 NativeLibpackage com.example.jnidemo; public class NativeLib { static { System.loadLibrary(native_demo); } public static native int add(int a, int b); }在项目根目录执行javac -h . src/com/example/jnidemo/NativeLib.java这条命令会根据包名自动生成 com_example_jnidemo_NativeLib.h。头文件里会看到 JNIEXPORT 开头的函数声明函数名是 Java 包名加类名加方法名的拼接这串名字一个字符都不能改改了就加载不到。第二步在 CLion 里新建一个 C/C 工程比如 JNI Demo。打开 CMakeLists.txt加入 JDK 头文件路径和动态库构建指令cmake_minimum_required(VERSION 3.20) project(native_demo C) set(CMAKE_C_STANDARD 11) include_directories( $ENV{JAVA_HOME}/include ) if(WIN32) include_directories($ENV{JAVA_HOME}/include/win32) elseif(APPLE) include_directories($ENV{JAVA_HOME}/include/darwin) endif() add_library(native_demo SHARED native.c)把刚才生成的头文件和对应的 .c 文件放进工程目录在 native.c 里实现 add 函数。第三步直接 BuildWindows 下会得到 native_demo.dllmacOS 下是 libnative_demo.dylibLinux 下是 libnative_demo.so。把这个文件放到 Java 的库搜索路径下回到 Java 工程执行 java com.example.jnidemo.NativeLib就能调用到 C 代码了。4.3 JNI 配置的几个大坑关于 JNI 和 CLion 的搭配我踩过的坑比配置步骤多先说三个高频的。第一个是位数不匹配。Java 是 64 位的就必须用 64 位编译器生成 64 位动态库32 位编译器生成的库加载时会直接报 UnsatisfiedLinkError: Unable to load library。第二个是跨平台路径问题macOS 需要在 include 后面加 darwin 目录Windows 要加 win32 目录Linux 则不加。我见过很多把 Windows 的路径硬写在 mac 工程里的情况编译时找不到 jni_md.h一头雾水。第三个是函数名不一致特别是改过 Java 包名后没有重新生成头文件Java 侧还在想着旧函数名符号匹配不上。建议每次改完 Java 代码都重新执行 javac -h 覆盖旧头文件。提示CMake 中的 $ENV{JAVA_HOME} 语法是从系统环境变量读取路径只要 JAVA_HOME 配得对跨机器换环境时这段配置基本不用改。5. CLion 嵌入式开发STM32 环境搭建与调试实录5.1 为什么我拿 CLion 替代了 STM32CubeIDE做 STM32 的朋友都知道官方 STM32CubeIDE 是免费的但它的代码编辑体验实在不敢恭维界面卡、补全弱、跨平台体验更是一言难尽。CLion 在嵌入式方向做了大量投入自带的 Embedded Development 支持配合 STM32CubeMX 生成的 CMake 工程可以做到编辑、编译、烧录、调试一条龙。关键理解在于CLion 不直接和芯片打交道它只是一个前端。真正干活的是这三样arm-none-eabi-gcc交叉编译工具链、CMake/Make构建系统、OpenOCD 或 st-flash烧录调试器。CLion 负责把这三样拼起来并用图形化界面统一指挥。5.2 从 CubeMX 到 CLion 的完整搭建步骤这里要注意STM32CubeMX 尽量用 6.x 以上的版本新版本在 Project Manager 页面把 Toolchain 选项改成了 CMake生成的工程里自带 CMakeLists.txtCLion 可以直接打开。按照这个流程操作在 CubeMX 里选择芯片型号配置好时钟、外设和引脚。菜单 Project → Generate CodeToolchain 选 CMakeToolchain location 选 arm-none-eabi-gcc 所在目录。生成完成后用 CLion 打开工程根目录前提是 CLion 能识别出这是一份 CMake 工程。在 Settings → Build, Execution, Deployment → Toolchains 里新增一个工具链C Compiler 和 C Compiler 都指向 arm-none-eabi-gcc 的路径。配置烧录。在 Settings → Build, Execution, Deployment → Embedded Development 里指定 OpenOCD 路径和配置文件。如果你手头是 stlink 调试器对应 interface 文件就是 stlink.cfg芯片型号选择对应系列比如 STM32F1 系列就是 stm32f1x.cfg。之后可以直接点右上角的 Run 或 Debug。Run 会调用 OpenOCD 把固件烧到芯片里Debug 会启动调试会话在代码里设好断点单步执行和查看变量都是图形化操作体验比 Keil 舒服太多。5.3 烧录和调试时的经验谈嵌入式调试常见的问题是 OpenOCD 找不到设备或配置文件不匹配。第一次配之前先在终端手动跑一次 OpenOCD 验证环境openocd -f interface/stlink.cfg -f target/stm32f1x.cfg如果终端能正常输出 Info 级别的日志并等待连接说明调试器驱动和芯片配置文件都没问题。要是提示找不到 cfg 文件多半是 OpenOCD 安装目录里没有对应芯片的 target 文件去 OpenOCD 官方脚本库下载对应文件放进 target 目录即可。另外一个非常小的细节CLion 的 Embedded 配置里可以选择 External GDB Server如果你的调试器不是常见型号直接用 OpenOCD 起服务再把 GDB 指向本机 3333 端口效果是完全可控的。配置对一次之后整个团队都可以把这份方案复制走比守着各家 IDE 的私有工程要省心得多。6. 插件商店搜不到 Continue手动安装才是正解6.1 为什么搜索不到不一定是网络问题很多人在 CLion 的插件商店里搜 Continue 插件结果一无所获第一反应是“网络问题”。确实JetBrains 插件仓库在某些网络环境下访问不稳定请求超时会直接导致搜索结果为空。但还有一个很容易被忽略的原因Continue 插件对 JetBrains 系列的兼容范围有限如果你的版本过旧插件仓库的元数据会直接把它过滤掉搜索不到也不用奇怪。先区分一下CLion 本身的能力集中在 C/C 开发上AI 辅助编码这种功能还是要靠第三方插件来增强。Continue 是最受关注的开源 AI 编程助手之一官方支持 VSCode 和 JetBrains 全家桶但 JetBrains 版本有兼容门槛通常要求较新的 CLion 版本。如果你的 IDE 版本太老搜索结果里不会出现它。6.2 绕过商店两步手动安装既然商店搜不到最稳定的办法就是手动安装。操作流程极简单全网通用去 Continue 的 GitHub Releases 页面下载和你的 CLion 主版本号匹配的 .zip 包。下载时认准文件名里的 idea 或 jetbrains 字样别下成 VSCode 的 vsix 文件。回到 CLion打开 Settings → Plugins点击右上角的齿轮图标选择 Install Plugin from Disk...选中刚下载的 zip确认后重启 IDE。重启后如果插件生效通常会在右侧工具栏或菜单中出现 Continue 面板。如果装完没有任何变化先检查版本号是否匹配。另外能用商店尽量用商店手动装插件最大的问题是依赖和版本不好控制升级 IDE 后可能需要重新安装。顺带分享几个我非常常用的 CLion 插件组合VS Code Keymap把 VS Code 快捷键搬到 CLion迁移者福音、Rainbow Brackets括号高亮配色、CodeGlance Pro代码缩略图、Material Theme UI护眼主题。这些基本都能在商店里搜到商店没有就直接走手动安装的老路子。7. 高频问题排查与实操避坑速查7.1 高频问题速查表整理了一份高频问题速查表都是我实测过或身边同事踩过的坑问题常见原因解决方案打开 sln 工程失败缺少 MSVC 工具链或 sln 依赖自定义 MSBuild Targets装 Visual Studio Build Tools准备好接受 CMake 重写方案中文输出乱码源码 UTF-8 与控制台 GBK 不一致设置 File Encodings 与 Console 编码为 UTF-8必要时调用 SetConsoleOutputCP插件商店搜不到 ContinueJetBrains 插件仓库访问不稳定或 IDE 版本过旧从 GitHub Releases 下载对应版本 zip手动安装JNI 库加载报 UnsatisfiedLinkError位数不匹配或函数名不一致确认 64 位编译重新 javac -h 生成头文件调试 STM32 连不上开发板OpenOCD 配置缺失或驱动异常、cfg 文件没配对终端单独启动 openocd 排查检查 stlink 驱动CMake 构建时找不到头文件工具链为交叉编译链但配置里选了宿主编译器在 Toolchains 中指向 arm-none-eabi-gcc确认 CMake 工具链变量7.2 几个值得分享的独家避坑技巧最后讲几个我实际操作中总结出来的经验都是常规教程里不会细写的。第一个CLion 默认的堆内存上限可能不够大。打开一个大型 CMake 工程时如果代码索引卡成幻灯片去 Help → Change Memory Settings 里把堆内存调到 2GB 甚至更高改完重启索引速度提升非常明显。第二个CMake 工程如果怎么刷新都不更新别怀疑人生大概率是 CMake 缓存坏了。手动删除项目根目录下 cmake-build-debug 或对应构建目录然后重新 Reload CMake Project。这个问题在频繁切换分支时特别容易出现我已经形成肌肉记忆了。第三个CLion 的调试体验在 Linux 下比 Windows 更顺滑。Windows 调试器有时会遇到访问到 C/C 标准库内部实现的问题如果只是为了看业务逻辑建议调试配置里把 Show Standard Library Types 关掉能少一半噪音。最后再提醒一句关于版本管理的坑CLion 新版本偶尔会调整 CMake 模板和默认 settings团队协作时尽量统一 IDE 版本和 CMake 策略。配置文件可以导出新人入职直接 Copy 一份 .idea 目录下的关键配置能帮对方省掉半天折腾时间。