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:

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