Zunächst, ich habe einen gleichen Topic hier schon gefunden. Nur har er nichts mit meinem Problem zu tun, oder eventuell doch. Vielleicht bekomme ich ja einen Hinweis.
Mir ist bekannt, dass der Fehler eventuell durch eine fehlende Klammer herrühren kann. Nur ist mein Code leider so groß, dass sich bestimmt keiner die Mühe macht und diese zu suchen. Deshalb poste ich ihn auch nicht.
Was aber mein Problem ist. Ich benutze die Extension von vMirco innerhalb des Visual Studio zur Entwicklung. Diese benutzt den Arduino-Compiler.
Nun habe ich zwei Versionen des VS, nämlich 2017 und 2019. Und hier ist mein Problem.
Mit VS 2017 kann ich das Projekt fehlerfrei übersetzen und es läuft auch auf einem ESP 2866.
Wenn ich aber das gleiche Projekt mit VS 2019 übersetze, bekomme ich obigen Fehler.
Damit sollte die Klammerursache wohl nicht an meinem Code zu suchen sein.
Wenn ich einen leeren ino-Sketch erstelle, also nur setup und loop, dann kompiliert das unter 2019.
Reduziere ich meinen richtigen ino-Sketch auch auf setup und loop, indem ich alles auskommentiere, bleibt der Fehler. Ich habe jedoch nicht alle cpp- und h-Dateien aus dem Projekt entfern, dann sind etliche. Wenn beide VS nicht den gleichen Compiler benutzen würden, dann hätte ich vermutet, dass die Reihenfolge beim include der h-Dateien und deren Kompilierung die Ursache ist. Aber der Compiler ist ja der gleiche.
Nein, Dein Problem ist, dass Du weder die konkrete Fehlermeldung nennst noch den Teil des Programms, auf den sich die Meldung bezieht (und das tut sie ja wohl).
Es kann die Klammer sein oder auch nicht. Da bin ich ganz sicher.
Den ganzen Code posten geht nicht, viele tausend Zeilen.
Hier ist die komplette Fehlermeldung:
ESPrit.ino: 113:1: error: expected unqualified-id before 'if
void loop()
Error compiling project sources
Ich glaube der Fehlermeldung schon, leider bringt aber die Zeilennummer nichts, es ist die Zeile mit "void loop()".
Das heißt für mich, der Fehler ist vorher im Setup, mehr Funktionen gibt es da nicht. Und wenn ich im Setup alles auskommentiere und auch alle includes, dann bleibt der Fehler.
Mein restlicher Code ist C++ (kein .ino) und ich vermute, da ja alle cpp-Files im Project kompiliert werden, egal ob man includes hat, dass der Fehler dort irgendwo liegt.
Nur verstehe ich halt nicht, warum VS2017 das kompiliert und 2019 nicht.
Tipp 1:
Soziale Probleme bearbeitet man, in dem man darüber spricht.
So lange darüber spricht, bis sich das Problem verändert, oder sich die Sicht auf das Problem verändert.
(Was beides aufs gleiche hinausläuft)
Tipp 2:
Technische Probleme bearbeitet man, in dem man das Problem analysiert, eine Lösung erarbeitet und diese dann durchsetzt.
Frage:
Bearbeitest du da ein technisches, oder ein soziales Problem?