Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

Hallo zusammen,

Ich versuche seit gestern verzweifelt einen Sketch von Github auf mein ESP8266 nodemcu zu bekommen.

Nach ein paar beseitigten Fehlern durch falsche bzw. alte libaries, bekomme ich nun beim überprüfen des Sketches folgende Fehlermeldung.

Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

Andere Programme lassen sich hochladen, allerdings das o.g. nicht.

Das Sketch um das es sich handelt ist dieses hier:

Den kompletten Verlauf habe ich als CodeTag angefügt.
kann mir jemand von euch einen Gedankenanstoß geben was ich als nächstes machen könnte?

Ich danke euch

Arduino: 1.8.12 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from C:\Users\aaron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h:6:0,

                 from C:\Users\aaron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/stdio.h:63,

                 from C:\Users\aaron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\cores\esp8266/Arduino.h:32,

                 from C:\Users\aaron\Documents\Arduino\libraries\lib/autotimezone.h:12,

                 from C:\Users\aaron\Desktop\SmartHome-master(1)\SmartHome-master\ESP8266EASTRON\ESP8266EASTRON.ino:1:

C:\Users\aaron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:25:130: error: 'const char HTTP_HEAD []' redeclared as different kind of symbol

   #define PROGMEM __attribute__((section( "\".irom.text." __FILE__ "." __STRINGIZE(__LINE__) "."  __STRINGIZE(__COUNTER__) "\"")))

                                                                                                                                  ^

C:\Users\aaron\Documents\Arduino\libraries\WiFiManager-master/WiFiManager.h:35:24: note: in expansion of macro 'PROGMEM'

 const char HTTP_HEAD[] PROGMEM            = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";

                        ^

In file included from C:\Users\aaron\Documents\Arduino\libraries\WiFiManager-master/WiFiManager.h:17:0,

                 from sketch\general.h:3,

                 from C:\Users\aaron\Desktop\SmartHome-master(1)\SmartHome-master\ESP8266EASTRON\ESP8266EASTRON.ino:27:

C:\Users\aaron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WebServer\src/ESP8266WebServer.h:33:39: error: previous declaration of 'HTTPMethod HTTP_HEAD'

 enum HTTPMethod { HTTP_ANY, HTTP_GET, HTTP_HEAD, HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_OPTIONS };

                                       ^

exit status 1
Fehler beim Kompilieren für das Board NodeMCU 1.0 (ESP-12E Module).

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Was denn nun ?
ESP32 oder ESP8266, welchen verwendest du ?

Hallo Dieter,

Ich benutze das NodeMCU Amica ESP8266 Modul (ESP-12E mit CP2102 Chip)

Dann solltest du nicht schreiben, dass du den Sketch auf einen ESP32 flashen willst.

Ich versuche seit gestern verzweifelt einen Sketch von Github auf mein ESP32 nodemcu zu bekommen.

Die ausgegebenen Meldungen sind ausreichend um den Fehler zu erkennen. Hier scheinen sich 2 Libs zu beißen, indem sie versuchen dasselbe Symbol unterschiedlich zu verwenden:
in

C:\Users\aaron\Documents\Arduino\libraries\WiFiManager-master/WiFiManager.h

wird ind dieser Zeile

const char HTTP_HEAD[] PROGMEM            = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";

das Symbol HTTP_HEAD als ‘const char’ definiert.
Das selbe Symbol wird in

C:\Users\aaron\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WebServer\src/ESP8266WebServer.h

als Element eines enum verwendet:

enum HTTPMethod { HTTP_ANY, HTTP_GET, HTTP_HEAD, HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_OPTIONS };

Das funktioniert nicht. Die 2 Libs sind inkompatibel.

Hallo MicroBahner.

Danke für deine Hilfe, ich habe die Ausgabe falsch interpretiert und dachte er hätte eine der beiden libaries benutzt um die Doppelbelegung des Symbols zu umgehen.

Ich habe die C:\Users\aaron\Documents\Arduino\libraries\WiFiManager-master/WiFiManager.h ausgetauscht und er hat es einwandfrei compiliert.

Danke nochmal :slight_smile:

2-a:
Ich habe die C:\Users\aaron\Documents\Arduino\libraries\WiFiManager-master/WiFiManager.h ausgetauscht und er hat es einwandfrei compiliert.

Schön das es jetzt funktioniert und du uns eine Rückmeldung gibst.
Nur warum änderst du nicht deine falsche Angebe üben den verwendeten Controller im Eingangspost.
Auch da ist eine Richtigstellung angebracht.