Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Atmel Studio 6链接器导致多个定义错误_C_Avr_Atmel - Fatal编程技术网

C Atmel Studio 6链接器导致多个定义错误

C Atmel Studio 6链接器导致多个定义错误,c,avr,atmel,C,Avr,Atmel,我在Atmel Studio 6.1中遇到问题,由于多个定义错误,我无法编译,这似乎是由链接器重复“Libraries/lib_mcu/can/can_isp_protocol.o Libraries/lib_mcu/can/can_isp_protocol.o”引起的。有人知道为什么会这样做吗?下面是编译器输出的列表 Task "RunCompilerTask" C:\Program Files (x86)\Atmel\Atmel Studio 6.1\shellUtils\m

我在Atmel Studio 6.1中遇到问题,由于多个定义错误,我无法编译,这似乎是由链接器重复“Libraries/lib_mcu/can/can_isp_protocol.o Libraries/lib_mcu/can/can_isp_protocol.o”引起的。有人知道为什么会这样做吗?下面是编译器输出的列表

    Task "RunCompilerTask"
    C:\Program Files (x86)\Atmel\Atmel Studio 6.1\shellUtils\make.exe all 
    Building file: ../Libraries/lib_mcu/can/can_drv.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_mcu/can/can_drv.d" -MT"Libraries/lib_mcu/can/can_drv.d" -MT"Libraries/lib_mcu/can/can_drv.o"   -o "Libraries/lib_mcu/can/can_drv.o" "../Libraries/lib_mcu/can/can_drv.c"
    Finished building: ../Libraries/lib_mcu/can/can_drv.c
    Building file: ../Libraries/lib_mcu/can/can_isp_protocol.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_mcu/can/can_isp_protocol.d" -MT"Libraries/lib_mcu/can/can_isp_protocol.d" -MT"Libraries/lib_mcu/can/can_isp_protocol.o"   -o "Libraries/lib_mcu/can/can_isp_protocol.o" "../Libraries/lib_mcu/can/can_isp_protocol.c"
    Finished building: ../Libraries/lib_mcu/can/can_isp_protocol.c
    Building file: ../Libraries/lib_mcu/can/reduced_can_lib.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_mcu/can/reduced_can_lib.d" -MT"Libraries/lib_mcu/can/reduced_can_lib.d" -MT"Libraries/lib_mcu/can/reduced_can_lib.o"   -o "Libraries/lib_mcu/can/reduced_can_lib.o" "../Libraries/lib_mcu/can/reduced_can_lib.c"
    Finished building: ../Libraries/lib_mcu/can/reduced_can_lib.c
    Building file: ../Libraries/lib_mcu/eeprom/eeprom_lib.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_mcu/eeprom/eeprom_lib.d" -MT"Libraries/lib_mcu/eeprom/eeprom_lib.d" -MT"Libraries/lib_mcu/eeprom/eeprom_lib.o"   -o "Libraries/lib_mcu/eeprom/eeprom_lib.o" "../Libraries/lib_mcu/eeprom/eeprom_lib.c"
    Finished building: ../Libraries/lib_mcu/eeprom/eeprom_lib.c
    Building file: ../Libraries/lib_mcu/flash/flash_boot_drv.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_mcu/flash/flash_boot_drv.d" -MT"Libraries/lib_mcu/flash/flash_boot_drv.d" -MT"Libraries/lib_mcu/flash/flash_boot_drv.o"   -o "Libraries/lib_mcu/flash/flash_boot_drv.o" "../Libraries/lib_mcu/flash/flash_boot_drv.c"
    Finished building: ../Libraries/lib_mcu/flash/flash_boot_drv.c
    Building file: ../Libraries/lib_mcu/flash/flash_boot_lib.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_mcu/flash/flash_boot_lib.d" -MT"Libraries/lib_mcu/flash/flash_boot_lib.d" -MT"Libraries/lib_mcu/flash/flash_boot_lib.o"   -o "Libraries/lib_mcu/flash/flash_boot_lib.o" "../Libraries/lib_mcu/flash/flash_boot_lib.c"
    Finished building: ../Libraries/lib_mcu/flash/flash_boot_lib.c
    Building file: ../Libraries/lib_module/isp/isp_lib.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "Libraries/lib_module/isp/isp_lib.d" -MT"Libraries/lib_module/isp/isp_lib.d" -MT"Libraries/lib_module/isp/isp_lib.o"   -o "Libraries/lib_module/isp/isp_lib.o" "../Libraries/lib_module/isp/isp_lib.c"
    Finished building: ../Libraries/lib_module/isp/isp_lib.c
    Building file: .././main_can_bootloader_example.c
    Invoking: AVR/GNU C Compiler : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe"  -funsigned-char -funsigned-bitfields -DDEBUG  -I".." -I"../Libraries" -I"../Libraries/lib_board" -I"../Libraries/lib_mcu" -I"../Libraries/lib_mcu/can" -I"../Libraries/lib_mcu/eeprom" -I"../Libraries/lib_mcu/flash" -I"../Libraries/lib_module/isp"  -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=at90can128 -c -std=gnu99 -MD -MP -MF "main_can_bootloader_example.d" -MT"main_can_bootloader_example.d" -MT"main_can_bootloader_example.o"   -o "main_can_bootloader_example.o" ".././main_can_bootloader_example.c"
    Finished building: .././main_can_bootloader_example.c
    Building target: CAN-Bootloader.elf
    Invoking: AVR/GNU Linker : 3.4.2
    "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\bin\avr-gcc.exe" -o CAN-Bootloader.elf  Libraries/lib_mcu/can/can_drv.o Libraries/lib_mcu/can/can_isp_protocol.o Libraries/lib_mcu/can/can_isp_protocol.o Libraries/lib_mcu/can/reduced_can_lib.o Libraries/lib_mcu/eeprom/eeprom_lib.o Libraries/lib_mcu/flash/flash_boot_drv.o Libraries/lib_mcu/flash/flash_boot_lib.o Libraries/lib_module/isp/isp_lib.o Libraries/lib_module/isp/isp_lib.o main_can_bootloader_example.o   -Wl,-Map="CAN-Bootloader.map" -Wl,--start-group -Wl,-lm  -Wl,--end-group -Wl,--gc-sections -mrelax -Wl,-section-start=.text=0x1e000  -mmcu=at90can128 

链接器在其命令行上有两次
库/lib\u mcu/can/can\u isp\u protocol.o
。由于定义重复,链接失败

由于我没有使用Atmel Studio 6,因此无法描述删除副本的确切步骤

  • 您可能在项目中添加了两次
    can\u isp\u protocol.c
    。检查项目中的文件列表。在项目选项中检查链接器设置

  • 它可能会在(生成/手动创建的)
    Makefile
    :搜索
    对象
    OBJS
    (一般来说,搜索
    can\u isp\u协议
    ,无需扩展)中出现两次,它可能如下所示:

  • 对象=can_isp_协议。o can_isp_协议。o x.o y.o

    对于我的构建(Atmel 7),此错误是由于在设备启动文件夹中冗余包含
    startup\u samd10.c
    system\u samd10.c