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
combie
3
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";