неопределенная ссылка во время сборки AVR, ошибка компоновщика - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь скомпилировать и связать программу на основе AVR в Atmel Studio (7).Я получил сообщение об ошибке в фазе соединения.

Я делаю эту процедуру впервые с этим программным обеспечением, потому что я получил это программное обеспечение для обслуживания.И я слышал, что это программное обеспечение было успешно построено ранее в «некоторой среде».Я установил новейшую Atmel Studio, выбрал файл проекта и выбрал правильный процессор.После начала фазы связывания появилось сообщение об ошибке относительно неопределенной ссылки.

Цель создания: 16k.elf Вызов: AVR / GNU Linker: 5.4.0 "C: \ Program Files (x86) \ Atmel \ Studio \ 7.0 \ toolchain \ avr8 \ avr8-gnu-toolchain\ bin \ avr-gcc.exe "-o 16k.elf DanskOFP.o adc_drv.o -Wl, -Map =" 16k.map "-Wl, - начальная группа -Wl, - конечная группа -Wl,--gc-section -mmcu = atmega164p -B "C: \ Program Files (x86) \ Atmel \ Studio \ 7.0 \ Packs \ atmel \ ATmega_DFP \ 1.2.209 \ gcc \ dev \ atmega164p" C: \ Projektit \ V2.34 \ DanskOFP \ Atmega164p \ Makefile (118,1): ошибка: сбой рецепта для цели '16k.elf' DanskOFP.o: В функции `CPRX ':

C: \ Projektit \ V2.34 \ DanskOFP\ Atmega164p \ Makefile (118,1): ошибка: сбой рецепта для цели '16k.elf' DanskOFP.o: в функции CPRX': C:\Projektit\V2.34\DanskOFP\DanskOFP.c(1507,1): error: undefined reference to __ eewr_byte_m164p 'C: \ Projektit \ V2.34 \ DanskOFP \ DanskOFP.c (1507,1): ошибка: неопределенная ссылка на __eewr_byte_m164p' C:\Projektit\V2.34\DanskOFP\DanskOFP.c(1507,1): error: undefined reference to __eewr_byte_m164p 'C: \ Projektit \ V2.34 \ DanskOFP \ DanskOFP.c (1507,1): ошибка: неопределенная ссылка на __eewr_byte_m164p' C:\Projektit\V2.34\DanskOFP\DanskOFP.c(1507,1): error: undefined reference to __ eewr_byte_m164p'

Я ожидаю, что внутреннее определение относительно "__eewr_byte_m164p" должно быть найдено где-то, bно у меня нет клея, что-то изменилось между версиями AVR, или определение должно представлять какую-то новую практику?

1 Ответ

0 голосов
/ 16 мая 2019

Полагаю, это функция из avr-libc, а именно целевая функция, вызываемая из eeprom_write_byte().Убедитесь, что avr-libc указан в пути сборки / ссылки.

...