|
发表于 2005-3-12 16:46:13
|
显示全部楼层
我也正在用WinAVR/gcc做项目,一起学习!
有个问题想请教:我根据书中的样例写的一个关于以I2C总线方式读写EEPROM(AT24C02)的程序。程序编译成功后,进行链接时出现如下错误提示,似乎提示我的程序中定义的每个自定义函数(包括main()函数)都重复定义了。查了半天都找不到问题在哪里。请问这是怎么回事?怎么解决它?
Linking: i2cbus.elf
avr-gcc -mmcu=atmega8 -I. -gstabs -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=i2cbus.o -std=gnu99 -Wp,-M,-MP,-MT,i2cbus.o,-MF,.dep/i2cbus.elf.d i2cbus.o D:/WinAVR/MySamples/i2cBus.o --output i2cbus.elf -Wl,-Map=i2cbus.map,--cref -lm
D:/WinAVR/MySamples/i2cBus.o(.text+0x0): In function `delay_us':
i2cbus.c:20: multiple definition of `delay_us'
i2cbus.o(.text+0x0):i2cbus.c:20: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0xa): In function `delay_ms':
i2cbus.c:26: multiple definition of `delay_ms'
i2cbus.o(.text+0xa):i2cbus.c:26: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0x24): In function `led_display':
i2cbus.c:35: multiple definition of `led_display'
i2cbus.o(.text+0x24):i2cbus.c:35: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0x92): In function `led_fill':
i2cbus.c:50: multiple definition of `led_fill'
i2cbus.o(.text+0x92):i2cbus.c:50: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0xac): In function `i2c_write':
i2cbus.c:59: multiple definition of `i2c_write'
i2cbus.o(.text+0xac):i2cbus.c:59: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0x126): In function `i2c_Read':
i2cbus.c:84: multiple definition of `i2c_Read'
i2cbus.o(.text+0x126):i2cbus.c:84: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0x1d0): In function `fill_buff':
i2cbus.c:115: multiple definition of `fill_buff'
i2cbus.o(.text+0x1d0):i2cbus.c:115: first defined here
D:/WinAVR/MySamples/i2cBus.o(.text+0x23a): In function `main':
i2cbus.c:127: multiple definition of `main'
i2cbus.o(.text+0x23a):i2cbus.c:127: first defined here
make.exe: *** [i2cbus.elf] Error 1
> Process Exit Code: 2 |
|