首页 > 解决方案 > AVR 构建期间未定义的引用,链接器错误

问题描述

我正在尝试在 Atmel Studio (7) 中编译和链接基于 AVR 的程序。我在链接阶段收到错误消息。

我是第一次用这个软件做这个程序,因为我得到了这个软件进行维护。而且听说这个软件之前已经在“某个环境”下成功搭建过。我安装了最新的 Atmel Studio,选择了项目文件,并选择了正确的处理器。链接阶段开始后,出现有关未定义引用的错误消息。

构建目标:16k.elf 调用:AVR/GNU 链接器: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,--start-group -Wl,--end-group -Wl,--gc-sections -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”的内部定义,但我没有胶水,AVR 版本之间有什么变化,或者定义是否应该提出一些新的做法?

标签: avr-gcc

解决方案


我猜这是来自 avr-libc 的函数,即从eeprom_write_byte(). 确保 avr-libc 在构建/链接路径中。


推荐阅读