链接器选择仿真模式的机制是什么?

问题描述

我正在尝试使用av​​r-gnu编译器在代码块下编译arduino代码。我收到此错误:

avr-ld.exe unrecognized emulation mode: mcu=atmega328p.
Supported emulations:avr2 avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny

我找到了此页面:https://gcc.gnu.org/onlinedocs/gcc/AVR-Options.html,这表明它应该在avr5 sim模式下链接,因此我在链接器选项中添加了-mmcu = avr5。现在我得到了:

avr-ld.exe unrecognized emulation mode: mcu=avr5
Supported emulations:avr2 avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny

如果不支持avr5,怎么办? 我尝试了来自不同年份的几种不同工具链,但似乎链接器无法正确解释此仿真模式。较新的工具链支持328p,但仍然无法正常工作。我也尝试创建专用于Arduino的CodeBlocks项目,但不同之处在于它本身传递了-mmcu = atmega328p,但在此或更新的工具链上仍然不起作用。 更新: 我在这里完全缺少一些东西。我将链接器从Mingw更改为标准x86 32 ld.exe,并通过-mmcu = i386pe,但出现类似错误:

ld.exe unrecognized emulation mode: mcu=i386pe
Supported emulations:i386pe

因此,这只会导致我对如何选择/配置链接器仿真模式的机制缺乏了解。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...