Hallo,
ich habe ein C-Projekt(C18). Dort will ich einige Funktionen auslagern in eine zweite *.c-Datei.
Also schreibe ich meine include-Direktive in die main.c.
#include "zweite.c"
In diese kommt dann
/** P R I V A T E P R O T O T Y P E S ***************************************/
void funktion1(void);
/** D E C L A R A T I O N S **************************************************/
#pragma code
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void funktion1(void)
{
}
Resultat ist aber:
MPLINK 4.35, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Error - symbol 'funktion1' has multiple definitions.
Errors : 1
Wieso?
Ich habe auch versucht, eine *.h-Datei zwischen zu schieben und dort die Funktion mit "extern" zu deklarieren. Aber sowohl mit, als auch ohne extern und/oder *.h-Datei kommt immer der gleiche Fehler.
Dann habe ich mir angesehen, wie MC das mac ht. Komischerweise auch nicht anders. Eine *.c-Datei mit include eingebunden, im Kopf die Funktion definiert und weiter unten den Code geschrieben.
Wieso macht das der C18 nicht?
BL