Linking error mit cpp im Ordner

Hallo liebe Forumnutzer,

in meinem derzeitigen Arduino Projekt ist die .ino mir doch etwas zu groß geworden. Daher wollte ich die Definitionen und Deklarationen in eine .cpp und .h -Datei im selben Ordner auslagern. Dabei kam es leider zu Fehlermeldungen beim Linken. Für jede Deklaration im Header erhalte ich Fehlermeldungen derart, dass bei Verwendung in der ".ino.cpp.o" auffällt, dasd diese bereits in der ".cpp.o" definiert worden war. Soweit so richtig. Hier ein Beispiel der Fehlermeldung:

Die Fehlermeldungen sind alle der Art:

ArmTest.ino.cpp.o (symbol from plugin): In function `servoBase':

(.text+0x0): multiple definition of `servoBase'

C:\Users\xxx\AppData\Local\Temp\buildf3b4e96ed4d42d0239b8fb55333e5b3a.tmp\sketch\ArmDeclarations.cpp.o (symbol from plugin):(.text+0x0): first defined here

Wobei servoBase nichts anderes, als ein mit

Servo servoBase;

im Header deklarierter Servo ist. Natürlich habe ich im Header #ifndef etc. verwendet und sicherhalts halber habe ich im Header UND in der Quellcodedatei Arduino.h eingebunden. Daher verstehe ich nicht, wie es zu solch einer Fehlermeldung kommen kann.

Wenn ich nun aber Endung der Quellcodedatei von .cpp in .ino ändere, löst sich der Fehler in Wohlgefallen auf, Aber warum? Irgendwie halte ich es für keine gute Lösung, außer es gibt keinen anderen Weg. Blos warum ist das Verhalten so und wie kann ich das Problem lösen?

Vielen Dank schonmal für die Hilfeleistungen und Ratschläge.

Ist natürlich klasse, die Dateien geheim zu halten.
Damit bleibt auch der Fehler geheim.

Also bleibt mir nur:

multiple definition of 'servoBase'

Du solltest der Meldung glauben!
Und entsprechend darauf reagieren.

Nachtrag:

Du möchtest den Servo in der *.h nur deklarieren, und nicht definieren.
Die Definition muss in die cpp.

*.h:

extern Servo servoBase;

*.cpp

Servo servoBase;