乐鑫技术交流
直播中

CDCNKA

9年用户 1299经验值
擅长:385288
私信 关注
[问答]

链接器返回失败的原因?如何解决?

错误 :
代码:全选c:/users/stanzlavos/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: C:UsersSTANZL~1AppDataLocalTemparduino_build_739272/IRControl.ino.elf section `.data' will not fit in region `dram0_0_seg'

c:/users/stanzlavos/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: address 0x40009a98 of C:UsersSTANZL~1AppDataLocalTemparduino_build_739272/IRControl.ino.elf section `.bss' is not within region `dram0_0_seg'

c:/users/stanzlavos/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: address 0x40009a98 of C:UsersSTANZL~1AppDataLocalTemparduino_build_739272/IRControl.ino.elf section `.bss' is not within region `dram0_0_seg'

collect2.exe: error: ld returned 1 exit status

这个工作区有大约 25 个文件。我有另一个工作区,它具有几乎完全相同的代码和一些编译得很好的额外文件。当我遇到问题时,我正在手动将一些更改从一个工作区移动到另一个工作区。
在其中一个 cpp 文件中,有一个带有“开关”块的函数。如果我只注释掉那个开关块的内容,就没有问题。我尝试保留该代码并从编译中取出一些其他文件,但问题仍然存在......
当它编译时(删除开关块内容后),输出显示:
代码:全选Sketch uses 376748 bytes (36%) of program storage space. Maximum is 1044464 bytes.
Global variables use 39504 bytes (48%) of dynamic memory, leaving 42416 bytes for local variables. Maximum is 81920 bytes.

更新:在 switch case 中,调用了来自另一个文件的 API。API 引用了一个包含 8192 个 struct 元素的全局数组:
代码:全选typedef struct
{
  int           type;
  int           bits;
  unsigned long value;
} ir_send_cmd_t;


更多回帖

发帖
×
20
完善资料,
赚取积分