Hallo zusammen,
ich drehe am Rad und habe bisher keine Lösung gefunden.
Alte Sketche, die sich einwandfrei in früherer Zeit kompilieren ließen, kommen jetzt mit dem Fehler-Hinweis "Fehler beim Kompilieren für das Board xyz.
Meine Arduino-Ver. ist 1.8.13. Es handelt sich Immer um Sketche mit "#include <ESP8266WiFi.h>".
Zum Beispiel dieser Sketch:
#include <ESP8266WiFi.h>
const char* ssid = "FRITZ!Box Fon WLAN 7270";
const char* password = "0312194720041948";
int ledPin = 13; // GPIO13
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
int value = LOW;
if (request.indexOf("/LED=ON") != -1) {
digitalWrite(ledPin, HIGH);
value = HIGH;
}
if (request.indexOf("/LED=OFF") != -1) {
digitalWrite(ledPin, LOW);
value = LOW;
}
// Set ledPin according to the request
//digitalWrite(ledPin, value);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("Led pin is now: ");
if(value == HIGH) {
client.print("On");
} else {
client.print("Off");
}
client.println("
");
client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a>
");
client.println("</html>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}
Als Fehler kommt dann
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp: In member function 'int ESP8266WiFiGenericClass::hostByName(const char*, IPAddress&)':
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: error: ambiguous overload for 'operator!=' (operand types are 'IPAddress' and 'int')
if(aResult != 0) {
^
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: note: candidates are:
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: note: operator!=(uint32_t {aka unsigned int}, int) <built-in>
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: note: operator!=(u32_t {aka long unsigned int}, int) <built-in>
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: note: operator!=(int, int) <built-in>
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: note: operator!=(const ip_addr_t* {aka const ip4_addr*}, const ip_addr_t* {aka const ip4_addr*}) <built-in>
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: note: operator!=(ip_addr_t* {aka ip4_addr*}, ip_addr_t* {aka ip4_addr*}) <built-in>
In file included from /Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFi.h:31:0,
from /Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:25:
/Users/gerdjacobsen/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/IPAddress.h:107:14: note: bool IPAddress::operator!=(const IPAddress&) const
bool operator!=(const IPAddress& addr) const {
^
/Users/gerdjacobsen/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/IPAddress.h:116:14: note: bool IPAddress::operator!=(uint32_t) const
bool operator!=(uint32_t addr) const {
^
/Users/gerdjacobsen/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/IPAddress.h:119:14: note: bool IPAddress::operator!=(u32_t) const
bool operator!=(u32_t addr) const {
^
Mehrere Bibliotheken wurden für "ESP8266WiFi.h" gefunden
Benutzt: /Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi
Nicht benutzt: /Users/gerdjacobsen/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi
exit status 1
Fehler beim Kompilieren für das Board Generic ESP8266 Module.
Es ist egal, welches Board ich auswähle, es kommt immer die Abweisung des Boards.
Was ist hier von mir nicht beachtet worden ?
@TO: Welche Version des ESP8266-Core verwendest Du?
Es sieht so aus, als hättest Du die 2 Mal installiert. Wirf mal beide raus und installiere sauber über den Boardmanager neu.
Du darfst nur 1 ESP8266WiFi haben.
#Dieter
Ich habe zur Zeit kein Board angeschlossen, muß man ja auch nicht, ich habe mehrere Boards zum Kompilieren gewählt, aber egal welches ich auswähle, es kommt der gleiche Fehler.
#Heinz
Arduino läuft bei mir auf einem MacBook Air. Die Verzeichnisse habe ich neu "sortiert". Jetzt USER-ARDUINO darunter libraries und Sketche , hoffe, dass es so korrekt ist.
#Tommky
Ist nur 1x installiert, die Zeile "/Users/gerdjacobsen/Library/Arduino15......" wird immer wieder kreiert, auch wenn ich sie lösche. Ist schon eigenartig, wo noch nicht einmal eine Arduinoversion 15 installiert ist oder war.
Ich habe sogar Arduino neu installiert.
Danke für eure Hilfen. Bitte gebt mir einen Hinweis, wenn etwas falsch von mir gemacht wurde.
Du bist der Meinung, die beiden Pfade saugt sich Dein PC aus den Fingern?
Mehrere Bibliotheken wurden für "ESP8266WiFi.h" gefunden
Benutzt: /Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi
Nicht benutzt: /Users/gerdjacobsen/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi
In den ersten gehört es nicht hin - wenn er ihn behnutzt, ist es also dort.
In den zweiten gehört es.
Aber wenn Du meinst, es wäre alles richtig --> Dein Problem.
Hallo Tommy,
das mag sich schon eigenartig anhören, aber den zweiten Satz habe ich nicht erzeugt !
"Nicht benutzt: /Users/gerdjacobsen/Library/Arduino15/packages/esp8266/...."
Es ist auch eine andere "Library", sie wird auch anders geschrieben und befindet sich normalerweise nicht im direkten Zugriff (Attribut unsichtbar)
Ich kann sie löschen, aber sie wird wieder neu erzeugt !? Richtig finde ich das auch nicht. Die zweite Zeile erhalte ich auch bei anderen Sketches die funktionieren.
Der Fehler, dass das Board abgelehnt wurde, kam eigentlich erst mit der Neuinstallation von ESP8266WiFi.h . Habe auch andere Dateien versucht, jedoch ohne Erfolg.
So sieht es auf der HD aus!
NICHT selbst erzeugte Verzeichnisse
Macintosh HD
Benutzer
gerdjacobsen
Library (unsichtbar)
Arduino15
packages
esp23 und esp8266/hardware/esp8266/2.7.4/libraries/ESP8266WiFi
SELBST erzeugte Dateien
Macintosh HD
Benutzer
gerdjacobsen
ARDUINO
libraries und sketches
COOL:
Alte Sketche, die sich einwandfrei in früherer Zeit kompilieren ließen, kommen jetzt mit dem Fehler-Hinweis "Fehler beim Kompilieren für das Board xyz.
Meine Arduino-Ver. ist 1.8.13. Es handelt sich Immer um Sketche mit "#include <ESP8266WiFi.h>".
Als Fehler kommt dann
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp: In member function 'int ESP8266WiFiGenericClass::hostByName(const char*, IPAddress&)':
/Users/gerdjacobsen/ARDUINO/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp:333:20: error: ambiguous overload for 'operator!=' (operand types are 'IPAddress' and 'int')
Yo.
Hast Du das mal mit einer Version 1.8.8. probiert?
Was ist hier von mir nicht beachtet worden ?
Das wird sich evtl. ergeben, wenn es unter 1.8.8 geht.
COOL:
Arduino läuft bei mir auf einem MacBook Air. Die Verzeichnisse habe ich neu "sortiert". Jetzt USER-ARDUINO darunter libraries und Sketche , hoffe, dass es so korrekt ist.
Nö.
Darunter Sketche und darunter libraries.
die Zeile "Users/gerdjacobsen/Library/Arduino15......" wird immer wieder kreiert, auch wenn ich sie lösche. Ist schon eigenartig, wo noch nicht einmal eine Arduinoversion 15 installiert ist oder war.
ja.
das ist RICHTIG! Es gibt auch keine Version 15.
Das ist der Konfiguration-Ordner!
du hast Recht, dass Arduino15-Verzeichnis ist ein reines Installationsverzeichnis. Ich habe dieses komplett gelöscht und ARDUINO 1.8.8 installiert. Somit sind jetzt 2 Versionen auf dem MAC.
Ich habe beide mit den Bordverwaltern versorgt:
Beide Versionen haben den gleichen Sketch mit dem NodeMCU 0.9 (ESP-12 Module) Board, wie auch schon beschrieben, kompiliert mit folgendem Ergebnis.
Ver. 1.8.8 hat nicht geklappt
fork/exec /Applications/Arduino-1.8.8.app/Contents/Java/tools-builder/ctags/5.8-arduino11/ctags: bad CPU type in executable
Fehler beim Kompilieren für das Board NodeMCU 0.9 (ESP-12 Module).
Ver. 1.8.13 hat geklappt, jedoch mit Hinweisen
Executable segment sizes:
IROM : 244828 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27260 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1264 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 1108 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 25024 ) - zeroed variables (global, static) in RAM/HEAP
Der Sketch verwendet 274460 Bytes (26%) des Programmspeicherplatzes. Das Maximum sind 1044464 Bytes.
Globale Variablen verwenden 27396 Bytes (33%) des dynamischen Speichers, 54524 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.
Cool - dass es jetzt geht! (sorry Gerd, konnte ich mir nicht verkneifen)
Was stört Dich an den Hinweisen?
Damit ist aus meiner Sicht alles okay - ist ein Teil des Linker-Outputs. Man kann ja wissen wollen, wie sich Code und Daten so verteilen im Produkt.