Fehler beim Einbinden der Header-Dateien?
Hallo,
ich habe Probleme beim Einbinden von externen Bibliotheken ins AVR-Studio 4.
Hier als Beispiel:
Code:
#include <avr/interrupt.h> // Wird nur gebraucht bei der Interrupt-Version
#include "uart.h"
// Einen 0-terminierten String übertragen.
void uart_puts (const char *s)
{
do
{
uart_putc (*s);
}
while (*s++);
}
// Ein Zeilenumbruch, abhängig davon, was die Gegenstelle haben will
// Windows: "rn"
// Linux : "n"
// MacOS : "r"
#define CR "\r\n"
char text[] = "Hallo Welt." CR;
int main()
{
uart_init(2400);
sei(); // Wird nur gebraucht bei der Interrupt-Version
uart_puts (text);
uart_puts ("Hallo Welt!" CR);
return 0;
}
Die Dateien uart.h und uart.c habe ich in das Projektverzeichnis kopiert und den Verzeichnissen "Source Files" und "Header Files" im AVR-Studio hinzugefügt.
Als Makefile benutze ich das vom Studio selbst generierte.
Wenn ich jetzt aber compilieren möchte spuckt der Compiler folgenden Text aus:
Zitat:
Build started 1.9.2011 at 03:06:36
avr-gcc -I"C:\Users\...\Documents\Versuche\..\..\Desktop\Li bs\UART Lib" -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT CVersuche.o -MF dep
/CVersuche.o.d -c ../CVersuche.c
avr-gcc -I"C:\Users\...\Documents\Versuche\..\..\Desktop\Li bs\UART Lib" -mmcu=atmega8 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT uart.o -MF dep/uart
.o.d -c ../uart.c
avr-gcc -mmcu=atmega8 -Wl,-Map=Versuche.map CVersuche.o uart.o -o Versuche.elf
uart.o: In function `uart_puts':
C:\Users\...\Documents\Versuche\default/../uart.c:447: multiple definition of `uart_puts'
CVersuche.o:C:\Users\...\Documents\Versuche\defaul t/../CVersuche.c:6: first defined here
make: *** [Versuche.elf] Error 1
Build failed with 1 errors and 0 warnings...
Vermute mal, dass ich irgend etwas bei der Verwendung der Bibliotheken nicht verstanden habe.
Könnt ihr mir sagen, wo der Fehler ist und wie es richtig funktioniert?
LG Kimba