C AVR:重新定位被截断以适合
我是这个社区的新手,因为我以前从未创建过帐户并提出过问题,但我一直使用这个网站来解决我的编程难题。谢谢你!不过,这一次,我找不到另一个符合我确切需要的问题。如果这是重复,我道歉 我现在使用的是初级操作系统0.2(Luna),它是Ubuntu 12.04的派生版本。我正在使用avr gcc库为ATmega32u4微处理器编译一个程序。在开发这个程序时,我已经编译了好几次,但直到现在我还没有收到这个错误。我把它贴在下面C AVR:重新定位被截断以适合,c,avr-gcc,atmega,relocation,C,Avr Gcc,Atmega,Relocation,我是这个社区的新手,因为我以前从未创建过帐户并提出过问题,但我一直使用这个网站来解决我的编程难题。谢谢你!不过,这一次,我找不到另一个符合我确切需要的问题。如果这是重复,我道歉 我现在使用的是初级操作系统0.2(Luna),它是Ubuntu 12.04的派生版本。我正在使用avr gcc库为ATmega32u4微处理器编译一个程序。在开发这个程序时,我已经编译了好几次,但直到现在我还没有收到这个错误。我把它贴在下面 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/
/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(log.o):../../../libm/fplib/log.S:100: relocation truncated to fit: R_AVR_13_PCREL against symbol `__addsf3' defined in .text section in /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
/usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr5/libc.a(modf.o):../../../libm/fplib/modf.S:90: relocation truncated to fit: R_AVR_13_PCREL against symbol `__subsf3' defined in .text section in /usr/lib/gcc/avr/4.5.3/avr5/libgcc.a(_addsub_sf.o)
collect2: ld returned 1 exit status
make: *** [main.elf] Error 1
简言之,我不知道这指的是什么。我的程序包含大量的文件,所以我不能准确地在这里发布全部内容;相反,我对以下问题的概括回答感兴趣:
因此,您试图获取的地址与使用它的指令的距离超过8KB。不幸的是,所讨论的指令在libm中,而不是在您的代码中,因此可能更难修复。 另外,请注意,由于它与PC有关,您可能只有4096个字节,因为您有一个符号位,因此您可以引用地址前后的位置
所以,这可能与可执行文件的代码大小有关。这是否有助于??潜在的令人讨厌的浮点辅助函数。也许你的芯片内存太少了?甚至这个??