☰
Windows下CLion+ESP-IDF开发ESP32环境配置全攻略
2026/10/6 6:44:36 网站建设 项目流程

一开始我是用Arduino IDE写ESP32的,后来工程变大,代码补全跟不上、重构不敢动、一个工程里几十个文件翻来翻去,实在顶不住。转成CLion + ESP-IDF以后,最大的感受是:终于像在写正经C/C++工程了。这篇就把我在Windows下从零到一配置CLion + ESP-IDF开发的完整过程写清楚,包括为什么这么选、每个环节怎么操作、以及折腾过程中踩过的坑。整个过程不涉及单片机调试点,就是纯开发环境搭建,从安装工具链到第一次把固件烧进板子,照着做就能跑通。


1. Windows下选CLion这套组合的理由:对比完就懂

先说结论:如果你是纯新手,只想点个灯、跑个Wi-Fi扫描,那Arduino IDE足够,这篇文章你看了也未必用得上。但如果你要做稍微复杂一点的东西——比如多组件工程、驱动移植、协议栈二次开发,或者你本身是搞C/C++开发的,CLion + ESP-IDF的体验会让你觉得前面在Arduino里浪费了不少时间。

1.1 几种开发环境横向对比

我实际用过Arduino IDE、Visual Studio Code加乐鑫官方插件、以及CLion加ESP-IDF插件,三者的差异很清楚。

对比维度Arduino IDEVSCode + ESP-IDF插件CLion + ESP-IDF插件
上手门槛极低中等中高
代码补全与跳转弱较好但偶尔抽风强且稳定
CMake工程理解不涉及需要自己理解原生支持
调试体验受限一般较好
大型工程维护不友好一般很适合
许可证费用免费免费付费(有30天试用)

VSCode的插件方案其实也不差,但它本质上是在VSCode里模拟了一套ESP-IDF的图形界面,遇到CMake相关的报错时,你得自己去翻构建日志,而CLion对CMake项目的支持是底层级别的。CLion会把整个ESP-IDF工程当作一个标准的CMake工程来解析,语法高亮、符号索引、静态分析都基于它对CMake的深层理解,这一点VSCode很难比。

1.2 CLion在这条链路里到底解决了什么

ESP-IDF从v4.0以后全面转向了CMake构建系统,工程本质就是一个CMake工程。CLion作为JetBrains家以C/C++开发环境见长的IDE,对CMake的native支持非常到位。我实际体验下来,CLion在我写代码时的几个核心优势非常突出:

  • 全局符号跳转和调用层次分析准确,工程几百个文件里找引用不会乱。
  • 重构功能能真改代码,比如给一个函数改名,它会自动把声明、定义、调用点全部处理掉,这在Arduino里想都不敢想。
  • CMakeLists.txt有专门的语法高亮和错误提示,写组件依赖时手顺很多。
  • 内存泄漏和空指针之类的静态分析提示,在写底层驱动时确实能提前发现一些隐患。

1.3 这套组合不适合什么人

我不想把CLion吹上天,它也有自己的问题。首先是收费,正版按年订阅,没有社区版的免费替代。其次是资源占用比VSCode高不少,老电脑开个大工程会卡。最后,Windows环境下要获得完整调试功能,你需要额外配置OpenOCD和J-Link或其它调试器,很多初学者卡在这一步就劝退了。

如果你已经能用PlatformIO或VSCode把ESP32项目管得明明白白,那没必要换。但如果你对IDE的代码分析能力有较高的要求,习惯JetBrains系的交互逻辑,CLion确实值得投入时间折腾。


2. 先拆解ESP-IDF的构建骨架:配环境之前必须搞懂

很多人环境配不好,是因为不理解ESP-IDF到底是怎么完成一次编译的。配置CLion的过程本质上是让CLion能正确调用ESP-IDF的构建体系,如果你不理解这一层,遇到报错就只能瞎试。

2.1 ESP-IDF已经不是一个“库”,而是一套构建系统

乐鑫从ESP-IDF v4.0开始废弃了老的基于GNU Make的构建方式,全面改为CMake + Ninja。这背后有一个很重要的考虑:随着芯片型号增多(ESP32、ESP32-S2/S3/C3等)和组件生态壮大,老式Makefile已经很难管理那成千上万个目标文件的依赖关系。

所以现在的ESP-IDF更像是一个套在CMake外面的Python框架。所有编译操作都通过一个叫idf.py的命令行入口来执行,它帮你做几件事:

  1. 检查环境变量IDF_PATH是否指向正确的ESP-IDF根目录。
  2. 调用Python脚本重新生成CMake缓存(包括根据当前目标芯片生成匹配的交叉编译器参数)。
  3. 调用Ninja执行增量编译。
  4. 调用esptool.py完成烧录。

idf.py其实是CMake的一个包装器,它的核心逻辑是生成一个特殊的工具链文件,并把工程目录下的各个组件通过CMakeLists文件组织起来,最后交给编译器去生成目标文件。

2.2 组件(component)的概念是理解整条链路的关键

ESP-IDF把代码逻辑按照“组件”划分。一个典型的工程目录结构是这样的:

my_project/ ├── CMakeLists.txt ├── main/ │ ├── CMakeLists.txt │ └── main.c ├── components/ │ ├── my_driver/ │ │ ├── CMakeLists.txt │ │ ├── my_driver.h │ │ └── my_driver.c │ └── my_utils/ │ ├── CMakeLists.txt │ └── utils.c └── sdkconfig

顶层CMakeLists.txt里通常只写三行,类似这样:

cmake_minimum_required(VERSION 3.16) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(my_project)

关键就在第二行:include($ENV{IDF_PATH}/tools/cmake/project.cmake)。这行代码会把整个ESP-IDF的CMake模块全部引入,然后它会在工程目录里自动寻找main文件夹和components文件夹下所有的子组件,为每个组件生成编译规则。这就是为什么CLion配置时必须确保IDF_PATH环境变量正确。

下面这个main/CMakeLists.txt里用到的idf_component_register是每个组件的核心宏:

idf_component_register( SRCS "main.c" INCLUDE_DIRS "." REQUIRES driver nvs_flash )

REQUIRES声明了这个组件依赖哪些其他组件。它的作用就是在CMake层面帮编译器配置头文件搜索路径和链接库。你对这个不敏感,将来组件多了以后很容易遇到“头文件找不到”的报错,其实多数就是REQUIRES没写对。

2.3 Windows下CLion需要理解的两个概念:Toolchain和虚拟环境

CLion为了能编译ESP-IDF工程,必须知道两件事:用哪套编译器、去哪找依赖库。这两件事分别对应CLion里的Toolchain设置和CMake里通过环境变量传递的IDF信息。

Windows下ESP-IDF默认使用乐鑫提供的交叉编译工具链(xtensa-esp-elf-gcc系列或者riscv32-esp-elf-gcc系列,看目标芯片架构)。这套工具链由ESP-IDF安装器负责下载,CLion的ESP-IDF插件会自动找到它并注册成Toolchain。另外,ESP-IDF还依赖一个Python虚拟环境,它里面装了构建脚本所需的pyparsing、pyserial等库。安装器会顺手创建这个虚拟环境,CLion插件会读取指向它的Python路径。

所以配置CLion,本质上就是让CLion找到这三样东西:IDF_PATH、交叉工具链路径、Python虚拟环境路径。


3. 完整安装流程:Git、Python、ESP-IDF安装器与CLion插件

下面是Windows下我从零安装的全过程。我在多台电脑上重复过这个流程,踩过的细节都会标出来。

3.1 先装前置软件:Git和Python

我习惯了从命令行操作,Git for Windows基本是必备的。去官网下载最新版,安装时注意一点:在“Adjusting your PATH environment”这一步,选择“Git from the command line and also from 3rd-party software”,这样git命令才能在任何终端里直接使用。

Python方面,ESP-IDF官方要求Python 3.8以上,但我建议装3.10或3.11版本,而不是最新的3.13。实测乐鑫安装器和部分工具链组件对过新的Python版本兼容性有问题。我用的3.11,整个过程没出过Python层面的毛病。

安装Python时务必要勾选“Add python.exe to PATH”。这是很多新手踩坑的地方,不勾选的话后续ESP-IDF安装器很可能报找不到Python。

可以打开一个命令行窗口验证一下:

git --version python --version

两条命令都能正常输出,就说明前置环境没问题。

3.2 用乐鑫官方安装器装ESP-IDF

访问乐鑫官网的esp-idf release页面,在Windows版本介绍里能找到esp-idf-tools-setup-online和esp-idf-tools-setup-offline两个安装器。我推荐下载离线安装器,因为在线安装器会从GitHub拉取大量工具链二进制文件,没有稳定代理的情况下几乎必失败。离线安装器把常用的工具包全部打进了安装包里,安装过程长一点,但成功率高得多。

安装时注意两个关键点:

第一,安装目录不要选带空格或有特殊字符的路径。我见过太多人把ESP-IDF装到C:\Program Files\下面,后面CMake各种报错。我建议装到C:\Espressif\这样的根级路径下。这不是玄学,CMake处理带空格的路径时,在Windows下经常出现引号转义问题,你会被这种错误折磨很久。

第二,安装器最后会问你是否把ESP-IDF注册到系统环境变量。我建议注册,这样后面命令行使用方便,CLion也能自动发现。如果注册失败,你需要在系统环境变量里手动新建一个IDF_PATH指向C:\Espressif\frameworks\esp-idf-v5.x(实际版本号看你装的版本)。

安装完成后,在开始菜单里应该能看到一个ESP-IDF PowerShell或ESP-IDF Cmd的快捷方式,这也是验证安装成功的一个标志。这个快捷方式会帮你设置好所有环境变量并激活Python虚拟环境,以后很多命令行操作会从它开始。

3.3 安装CLion与ESP-IDF插件

CLion去JetBrains官网下载安装即可,没有特别需要注意的,按默认选项一路安装。安装完成后打开CLion,进入File > Settings > Plugins,在Marketplace里搜索“ESP-IDF”,找到Espressif IDF插件并点击Install。

这个插件是乐鑫官方维护的,功能包括工程创建向导、构建烧录任务面板、串口监视器集成。装完后重启CLion,插件初始化时会在底部弹出一个提示条,让你点击Start配置ESP-IDF插件相关的SDK路径,这其实就是打开Settings里的配置页面。

配置项主要有四个:

  • IDF Path:指向C:\Espressif\frameworks\esp-idf-v5.x
  • Tools Path:指向C:\Espressif\tools
  • Python virtualenv Path:指向C:\Espressif\python_env\idf5.x_py3.11_env\Scripts\python.exe
  • Serial Port:选你实际连接的串口,没有设备可以先留空

我第一次配置时Serial Port留空了,建工程后插件不会自动选串口,但项目能正常编译,烧录前再设置也不迟。

3.4 验证环境变量

配置完插件后,我习惯先打开一个PowerShell窗口,手动执行一遍idf.py,确认整套工具链已经处于可用状态。这一步能让你在给CLion“喂”工程之前,先排除环境层面的故障。

$env:IDF_PATH = "C:\Espressif\frameworks\esp-idf-v5.4" cd $env:IDF_PATH .\install.ps1

如果你的Python虚拟环境已经由安装器建好,通常这一步不会卡住。接着设置目标芯片变量:

$env:IDF_TARGET="esp32"

在install.ps1成功的情况下,再去导入工程到CLion,基本不会出现Python或工具链缺失的报错。


4. CLion侧的关键配置:Toolchain、CMake参数与工程导入

ESP-IDF插件装好并设置好路径只是第一步。真正让CLion能识别并编译工程,需要把CMake和Toolchain都配置到正确状态。

4.1 让CLion认识乐鑫的交叉编译器

打开Settings > Build, Execution, Deployment > Toolchains,正常情况下ESP-IDF插件会在安装后自动注册一个新的Toolchain,名字里带有ESP-IDF字样。它已经把编译器路径指向了C:\Espressif\tools\xtensa-esp-elf\...\bin下的对应gcc。

如果插件没有自动注册,那就手动添加。点击+号,选择System,然后手动填写C编译器为xtensa-esp32-elf-gcc.exe的完整路径,C++编译器为xtensa-esp32-elf-g++.exe的完整路径。调试器选择xtensa-esp32-elf-gdb.exe。

这里容易犯的错是手动填成了Windows自带的MinGW gcc,那样CMake会出大量“unknown target”类错误。交叉编译器必须来自乐鑫工具链路径。

4.2 CMake配置:理解CLion如何调用ESP-IDF

CLion加载工程时会执行CMake。对于普通CMake工程,CLion把你填的CMake选项原样传给CMake。对于ESP-IDF工程,这个逻辑是被插件接管的。

选择File > Settings > Build > CMake,在Profile里,CLion的ESP-IDF插件会创建专用的CMake profile,CMake选项里会自动带入类似这样的参数:

-DIDF_TARGET=esp32

插件还会设置一系列环境变量,包括IDF_PATH、IDF_TOOLS_PATH、IDF_PYTHON_ENV_PATH。所以在CLion里你不需要在系统级设置太多东西,但系统级预留正确环境变量,会让命令行操作和IDE操作保持一致性。

CMake构建目录默认是cmake-build-debug。如果你在CLion里第一次加载工程失败,想重来,把这个目录删掉再重新加载往往是最快的恢复方式。

4.3 导入现有工程 vs 新建工程

如果是新项目,直接File > New Project,在左侧选择“ESP-IDF”,填写工程名,选择目标芯片型号,CLion会创建一个带main/main.c的骨架工程。它生成的CMakeLists.txt已经正确引用了IDF_PATH。

如果是从GitHub上clone的现成工程,我的做法是先在命令行用idf.py初始化一次,再通过CLion的“Open”打开工程根目录。打开时CLion会询问“Open as CMake project?”选择是。这样做的好处是,如果你把build目录也clone下来了,CLion能更快加载已有的CMake缓存。

需要注意的是:CLion在打开新工程的首次加载阶段,会执行一次完整的CMake Configure,这个过程需要下载一些SPIFFS工具和生成大量编译命令。第一次加载慢非常正常,不要中途取消。我见过有人以为死机了直接强杀CLion,结果缓存损坏,之后反复报错。

4.4 首个Configure失败的最常见原因排查

假设你第一次在CLion里加载工程时就报了错,先别急着查一堆复杂原因,按下面几个顺序排查:

  1. 看CMake日志窗口,有没有“Python interpreter not found”字样。有就是虚拟环境配置不对,去Settings里ESP-IDF插件的Python virtualenv路径看有没有指定到python.exe而不是文件夹。
  2. 有没有“could not find any instance of‘cmake’,‘make’,‘ninja’”字样。这意味着CLion没识别到工具链。检查Toolchains里是否用的是乐鑫那一套。
  3. 有没有路径包含空格导致“No such file or directory”。这多半是IDF_PATH路径问题,检查系统环境变量或CLion的IDF Path。
  4. CMake Configure成功后,接着看Build是否通过。Configure阶段错误多,Build阶段多半是代码本身或组件依赖问题。

5. 第一次完整构建与烧录:从样例工程到实际运行

环境配好了,下一步就是实打实验证一遍。我会在这里走完从创建工程到串口看到打印信息的整个链路。

5.1 创建一个闪灯工程并确认main组件

用CLion的New Project模板创建工程后,目录结构如下:

blink_demo/ ├── CMakeLists.txt ├── main/ │ ├── CMakeLists.txt │ └── main.c └── sdkconfig.defaults

打开main/main.c,替换成最基础的GPIO控制代码。这里我以ESP32的LED闪烁为例:

#include <stdio.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/gpio.h" #define LED_GPIO 2 void app_main(void) { gpio_set_direction(LED_GPIO, GPIO_MODE_OUTPUT); while (1) { gpio_set_level(LED_GPIO, 1); printf("LED ON\n"); vTaskDelay(pdMS_TO_TICKS(1000)); gpio_set_level(LED_GPIO, 0); printf("LED OFF\n"); vTaskDelay(pdMS_TO_TICKS(1000)); } }

注意打印输出的printf,ESP-IDF默认把stdout重定向到UART0,这正是我们之后验证串口监视器的关键代码。

5.2 在CLion里执行构建

构建前确认CMake profile选择的Target是esp32。如果板子是ESP32-S3,把CMake选项改成-DIDF_TARGET=esp32s3。

点击CLion右上角的Build图标(锤子形状),CLion会执行任务链,依次是:

  1. 运行idf.py cmake(生成/刷新CMake缓存)
  2. 调用Ninja进行编译
  3. 生成build/blink_demo.bin等镜像文件

第一次编译时间比较长,可能几分钟,取决于你的机器性能。右上角状态栏会显示编译中,CLion底部会有进度。编译成功后会输出Project build finished successfully。

有个小细节:CLion的Build按钮默认直接调用cmake --build,实际上底层就是ninja。这跟你在命令行跑idf.py build是同一套逻辑。所以在CLion里能编译,命令行里也一定能编译。

5.3 烧录前的串口识别

烧录前先把ESP32开发板用USB线连接电脑。打开设备管理器,查看“端口(COM和LPT)”下有没有一个新出现的COM口。常见芯片的驱动情况:

开发板USB芯片驱动情况常见问题
CP2102/CP2104需要装驱动设备显示为“Silicon Labs CP210x”
CH340/CH341Windows 10以上自动识别偶尔需要手动装驱动
原生ESP32-S3 USB口通常自动识别会显示为“USB JTAG/serial debug unit”

如果设备管理器没有反应,先换个USB线(很多劣质数据线只有供电没数据线),再检查驱动。

5.4 用CLion烧录并看串口输出

在CLion右侧栏,ESP-IDF插件提供了几个方便的Task:Build、Flash、Monitor、Flash & Monitor。点击Flash前,确认Settings里ESP-IDF插件的Serial Port设置为你刚识别的COM口。

点击Flash,CLion会调用esptool.py,把编译出的bin文件通过串口写入开发板。烧录过程中能看到类似这样的输出:

esptool.py v4.8.1 Serial port COM5 Chip is ESP32-D0WD-V3 (revision v3.0) Features: WiFi, BT, Dual Core, 240MHz, EFUSE Crystal 40MHz MAC: 24:6f:28:xx:xx:xx Uploading stub... Running stub... Stub running... Changing baud rate to 460800 ... Flash will be erased from 0x00001000 to 0x0033ffff Writing at 0x00f32000... ( 58 % )

烧录完成后,点击Monitor,它会打开一个串口监视窗口,你马上能看到开发板重启后打的日志:

LED ON LED OFF LED ON

到这里,CLion + ESP-IDF整条链路彻底跑通了。从写代码到监视串口输出完全在IDE内部完成,之后开发就很顺了。

5.5 命令行方式的备用操作

有些场景下IDE的按钮不方便使用,比如要在无人值守的远程构建脚本里编译,这时我习惯回归命令行方式。在ESP-IDF PowerShell里:

idf.py set-target esp32 idf.py build idf.py -p COM5 -b 460800 flash idf.py -p COM5 monitor

set-target是必须的一步,它会把目标芯片信息写入sdkconfig并生成相应的工具链配置。命令行下跑这几套流程,实际上和CLion插件里点击按钮是等价的。


6. 真实踩坑记录:路径空格、Python版本和缓存隐患

配置过程不会永远一帆风顺,我这里记录几个真实遇到过的坑,每一个都是我花了不少时间才解决的。这些内容在官方文档里很少提,但对于在Windows下折腾这套组合的人,价值很高。

6.1 安装路径带空格的连环报错

我第一次给朋友装的时候,他图省事用了系统默认的安装路径,结果ESP-IDF装到了C:\Program Files (x86)\Espressif。后果是CLion加载工程时CMake一堆莫名其妙的错误,比如“The system cannot find the file specified”,或者“ninja: error: invalid filename”。日志里路径被截断成一半。

这个问题用语言描述很难直观,但本质上就是CMake在传递路径参数时代码没有正确处理引号。解决办法只有一个:卸载重装,把路径选在C:\Espressif。这不是什么高级的配置技巧,纯粹是规避一个已知的坑。

建议:安装ESP-IDF时,路径统一放在没有任何空格、没有中文字符的纯英文路径下,比如C:\Espressif。

6.2 Python版本和PATH优先级

有一次我同事自己装了Python 3.13,然后又让ESP-IDF安装器装了另一个Python 3.11的虚拟环境。结果在安装器过程中,install.ps1脚本根据PATH里的Python版本判断环境是否满足要求,由于3.13太新,跟部分依赖库不兼容,报了一个“No module named cryptography”之类的错误。

排查后发现是PATH里Python顺序不对,系统优先选了Python 3.13。解决办法是调整PATH顺序,或者干脆把新版本的Python临时移出PATH,让安装器找到的是Python 3.11。

我后来有个习惯:只安装一个Python版本,其他版本都不加入系统PATH。所有项目统一用那个版本。为了解决版本冲突,ESP-IDF会创建专用的venv虚拟环境,依赖都装在里面,所以全局Python保持干净很重要。

6.3 CMake缓存残留导致反复离奇报错

这是最让我崩溃的一个坑。当时我本来在编译一个esp32s3的工程,后来切换到esp32,我直接修改了CMake选项里的IDF_TARGET,重新加载工程。结果报错内容五花八门,有些目标找不到、有些宏未定义,完全不像跟切换芯片相关的错误。

折腾半天,最后把工程根目录下的cmake-build-debug整个删除,重新加载,一切正常。原因是CMake缓存里还残留着旧target生成的编译规则,切换目标芯片不能只靠改一个变量,必须整份缓存重建。

现在我凡是要切换芯片型号,都会先手动删除build和cmake-build-debug目录,然后在命令行执行idf.py set-target,再用CLion加载。这样做最稳。

6.4 Windows Defender和杀毒软件乱入

CLion编译时会在临时目录生成大量文件,如果你是实时监控杀毒软件,很可能把Ninja的临时文件扫到超时,导致编译很慢甚至偶发失败。我在一台装了某国产安全软件的电脑上遇到过,编译到一半突然报“Permission denied”,把杀毒软件临时关闭后就好了。

Windows系统自带的Defender通常不会造成这种问题,但如果你习惯装第三方安全软件,注意把C:\Espressif、cmake-build-debug目录加入白名单,或者干脆在编译时关闭实时扫描。

6.5 串口监视器中文乱码

ESP-IDF默认波特率是115200,串口监视器用8-N-1格式。如果你printf的中文出现乱码,第一反应可能是编码问题,但其实首先要确认代码文件本身是UTF-8编码,并且CLion的File Encoding设置为UTF-8。Windows下CLion新建文件默认就是UTF-8,但工程是从别的地方拷贝来的话,文件可能被保存成GBK,这样编出来的中文字符串在串口里自然是乱码。

其次,如果你在CLion的Monitor窗口里看到乱码,可以把它关闭,用命令行idf.py -p COM5 monitor跑一遍试试。如果命令行正常、CLion乱码,那就是IDE的串口监视窗口编码设置问题。


7. 让日常开发更顺手的几个配置建议

环境搞通以后,还有些细节能让你的日常体验更好。

7.1 给CLion加一个外部idf.py工具的快速入口

虽然CLion插件集成了构建烧录,但很多时候你需要在工程目录下执行一些额外的idf.py子命令,比如idf.py size查看固件占用、idf.py menuconfig调整配置。CLion里没有直接的menuconfig按钮,但你可以在File > Settings > Tools > External Tools里添加一个外部工具,指向ESP-IDF PowerShell,运行idf.py menuconfig。之后在CLion菜单栏就能一键打开menuconfig界面,它会弹出终端窗口,操作体验比切出IDE好得多。

7.2 配置代码风格和头文件智能提示

ESP-IDF的代码风格是乐鑫自己的一套clang-format配置。在CLion里可以打开Settings > Editor > Code Style,导入$IDF_PATH/tools/cmake/format/clang-format文件,让IDE的格式化规则与项目风格一致。这个细节很多人忽略,但当你提交代码到社区或者跟别人协作时,统一的代码格式能省去很多无意义的review争论。

头文件补全方面,只要CMake配置正确,CLion能自动索引ESP-IDF的全套头文件。万一某个头文件搜不到,可以到CMake的“Included Headers”里检查一下当前组件的REQUIRES列表,通常问题出在组件依赖声明不全。

7.3 日常使用中我最依赖的习惯

最后分享两个我实际操作中的经验:

第一,CLion里写代码时,我会固定打开右侧的IDF任务面板,从那里直接切换Flash和Monitor。相比工具栏,任务面板还能显示串口输出带的颜色高亮,日志级别(ERROR、WARN、INFO)一目了然,比命令行流畅很多。

第二,CLion自带的终端很好用,Windows下我把它默认设置成PowerShell,并且进入终端后手动执行一次Export-Idf(ESP-IDF安装器生成的PowerShell函数)。这样我就有了一个既能在CLion里写代码、又能随时跑idf.py命令的完整环境,省去每次在IDE和独立终端之间来回切换的麻烦。

这套环境跑了一段时间后,说实话我回不去Arduino了。哪怕只是改个小功能,CLion的代码分析和构建速度都让人舒服。如果你正卡在配置阶段,按上面步骤一步步来,一条路走到黑,大概率一次成功。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询