Fehlermeldung nicht Erklärbar

Habe einen Script von einer Wetter Station,
in der Settings.h definiere ich zweimal ein String

******* configuration control constant for use of Blynk and/or Thingspeak ***/

const String App1 = "BLYNK"; // empty string if not applicable -> "" else "BLYNK"

const String App2 = "THINGSPEAK"; // empty string if not applicable -> "" else "THINGSPEAK"

Als Fehlermeldung erhalte ich schon beim ersten String:
" redefinition of 'const String App1' "

Ardunio 1.8.12 wurde neu auf den Rechner installiert.

Fehlt irgendwas? Vielleicht weis jemand.

Danke Eckstone
1

redefinition

Du definierst diesen String, hast Den aber bereits vorher schon definiert.
Und 2x geht Das nicht.

Manch Mal ist's wirklich Das, was der Kompiler anmeckert.

MfG

in der Settings.h definiere ich zweimal ein String

Es ist in der Regel falsch einfach einen String in einer *.h zu definieren.
Deklarieren, ok, aber definieren eher nicht.

Bedenke, eine *.h gibt es eigentlich nur zum Zwecke der Mehrfacheinbindung.
Und du bindest diese 2 mal ein. Daher die Meldung

Alternativ 1:
Jeder Übersetzungseinheit eine eigene Instanz spendieren, dann:

static const String  App1   =  "BLYNK";

Alternativ 2:
Deklaration und Definition trennen

*.h Datei

extern const String  App1;

*.cpp Datei

const String  App1   =  "BLYNK";

Danke, werde testen. :slight_smile: