You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino IDE编译ESP32代码时出现数组越界运行时错误求助

树莓派64位系统下Arduino IDE 1.8.13编译ESP32代码的索引越界问题

问题描述

我在树莓派64位系统上使用Arduino IDE 1.8.13开发ESP32代码。首次编辑脚本并上传成功后,再次编译上传会触发如下panic错误,且所有脚本都出现这个问题。但将脚本保存关闭后重新打开,就能正常编译上传。我有多年Arduino开发经验,这个问题是近期才出现的,求排查和解决方法。

错误日志

panic: runtime error: index out of range [5] with length 5

goroutine 1 [running]:
arduino.cc/builder.(*includeCache).Next(...)
    arduino.cc/builder/container_find_includes.go:209
arduino.cc/builder.findIncludesUntilDone(0x4000080400, 0x40002427b0, 0x15bd40, 0x4000aa1ef0, 0x40002ac115, 0x8, 0x0, 0x0)
    arduino.cc/builder/container_find_includes.go:321 +0x103c
arduino.cc/builder.(*ContainerFindIncludes).Run(0x2b9608, 0x4000080400, 0x41bc3c3c, 0x0)
    arduino.cc/builder/container_find_includes.go:149 +0x4cc
arduino.cc/builder.runCommands(0x4000080400, 0x40004dfc38, 0x22, 0x22, 0x7f00000001, 0x400, 0x400)
    arduino.cc/builder/builder.go:191 +0xcc
arduino.cc/builder.(*Builder).Run(0x4000093ea8, 0x4000080400, 0x7fe51762bc, 0x34)
    arduino.cc/builder/builder.go:124 +0x7f0
arduino.cc/builder.RunBuilder(...)
    arduino.cc/builder/builder.go:222
main.main()
    arduino.cc/arduino-builder/main.go:338 +0x624
arduino-builder returned 2
Error compiling for board ESP32 Dev Module.

排查及解决建议

  • 清理Arduino IDE缓存:
    找到Arduino的缓存目录(默认路径为~/.arduino15/cache),删除目录内所有文件,重启IDE后重新测试编译。
  • 更新ESP32核心库:
    在IDE中依次点击「工具→开发板→开发板管理器」,搜索并找到ESP32库,更新至最新稳定版本——旧版本核心库可能存在与64位系统不兼容的缓存逻辑bug。
  • 更换Arduino IDE版本:
    1.8.13版本较陈旧,可尝试升级到1.8.x系列的最新版本,或降级到之前能正常工作的旧版本,排查是否为IDE本身的bug导致。
  • 禁用自动保存功能:
    打开IDE的「文件→首选项」,取消勾选「自动保存」选项,手动保存代码后再执行编译操作,避免自动保存过程中缓存状态异常。
  • 检查系统权限:
    确保当前用户对Arduino安装目录、缓存目录以及项目文件夹拥有完整的读写权限,权限不足可能导致缓存文件损坏或写入异常。
  • 重新安装Arduino IDE:
    备份好项目文件和IDE偏好设置后,彻底卸载当前IDE,重新下载适配树莓派64位系统的安装包进行安装,排除安装文件损坏的可能性。

内容的提问来源于stack exchange,提问作者Steve Gale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:52:45