Я новичок в этом сообществе, поскольку я никогда раньше не создавал учетную запись и не задавал вопрос, но я постоянно использую этот сайт для решения моих проблем с программированием. Так что спасибо тебе! На этот раз, однако, я не мог найти другого вопроса, соответствующего моим конкретным потребностям. Если это повторение, прошу прощения.AVR: Перемещение усечено, чтобы соответствовать
Я нахожусь на элементарной ОС 0,2 (Luna), производной от Ubuntu 12.04. Я использую библиотеку avr-gcc для компиляции программы для микропроцессора ATmega32u4. Я скомпилировал эту программу несколько раз по мере ее разработки, но до сих пор я не получал эту ошибку. Я вставляю его ниже.
/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
Короче говоря, я не знаю, что это значит. Моя программа содержит множество файлов, поэтому я не могу точно разместить здесь все это; вместо этого меня бы интересовал обобщенный ответ на следующие вопросы:
- Что такое ошибка «переселения усеченной в соответствии»? Я читал, что это связано с доступом к памяти, которая находится слишком далеко, но как это происходит в моей программе на C?
- Что такое R_AVR_13_PCREL? Кажется, это присуще библиотеке avr-gcc; какой аспект моей программы может относиться к такой переменной?
- Единственный общий заголовок C, в который я включаю, - math.h; другие файлы являются моими собственными. Я знаю, что есть фанки-флаг для math.h, который должен быть помещен в Makefile; Я верю, что это -lm. Но я пробовал это безрезультатно.
спасибо, каждый. Я ценю помощь этого сообщества.
Это поможет http://stackoverflow.com/questions/10486116/what-does-this-gcc-error-relocation-truncated-to-fit-mean ?? – alkis
Потенциально неприятные вспомогательные функции с плавающей запятой. Может быть, у вас слишком мало ОЗУ на чипе? –
Или даже это http://stackoverflow.com/questions/8188849/avr-linker-error-relocation-truncated-to-fit ?? – alkis