Mac端Arduino编译Digispark代码报bad CPU type in executable错误
报错根因
bad CPU type in executable是系统架构与编译工具链架构不匹配导致的:Digispark默认板卡包依赖的avr-gcc 4.8.1-arduino5是仅适配Intel x86架构的老版本程序,在Apple Silicon(M1/M2/M3系列)芯片的Mac上无法直接运行,就会触发这个编译失败错误。
解决步骤
按顺序操作即可:
- 确认Mac芯片类型:点击左上角苹果图标→「关于本机」,查看芯片标注。如果是Intel芯片出现该报错,直接跳第三步操作;如果是Apple芯片从第一步开始操作。
- 给Arduino IDE开启Rosetta转译:
- 打开访达进入应用程序目录,找到Arduino IDE图标
- 右键点击图标选择「显示简介」,勾选「使用Rosetta打开」选项后关闭简介窗口
- 彻底退出后台运行的Arduino IDE,重新启动后先尝试编译,若仍报错走下一步
- 替换不兼容的老版本avr-gcc工具链:
- 打开Arduino IDE首选项,确认「附加开发板管理器网址」中已添加Digispark板卡索引:
http://digistump.com/package_digistump_index.json,未添加则补全后保存 - 打开开发板管理器,搜索
Digistump AVR Boards,卸载当前已安装版本后,安装1.6.7版本的板卡包 - 打开路径
/Users/你的用户名/Library/Arduino15/packages/arduino/tools/avr-gcc/,将目录下的4.8.1-arduino5文件夹重命名为4.8.1-arduino5_backup做备份 - 回到开发板管理器,搜索
Arduino AVR Boards,安装最新版本的官方AVR板卡包,安装完成后avr-gcc目录下会生成新版本的avr-gcc文件夹,将该文件夹复制一份并重命名为4.8.1-arduino5,放回原路径即可
- 打开Arduino IDE首选项,确认「附加开发板管理器网址」中已添加Digispark板卡索引:
- 验证修复:重启Arduino IDE,选择对应Digispark开发板型号,加载示例代码执行编译,确认错误消失。
注意:不要安装1.6.7以前的Digistump AVR板卡包,旧版本绑定的工具链完全没有适配新Mac系统的运行逻辑,会反复触发同类错误。
内容的提问来源于stack exchange,提问作者dylanhibbert
相关产品推荐
相关产品推荐

