Fehlermeldung beim kompilieren:'folderSettings' was not declared in this scope

Hallo!

Ich bin neu hier im Forum. Wollte gestern den Sketch aufspielen und bekam die Fehlermeldung:
‚folderSettings‘ was not declared in this scope.
Habe die die Arduino Umgebung 1.8.18 unter Debian installiert.

  • Die geforderten Bibliotheken in neuester Version geladen.
  • Die Einstellungen
    Board: Arduino Nano
    Prozessor: ATmega 328P (old Bootloader)
    Port: dev/ttyUSB0
    Die Fehlermeldung kommt schon beim Kompilieren.
    Wo könnte ich noch nach Fehlern suchen?

Moin

Wie hast du den Code denn heruntergeladen?
die Suche nach der Fehlermeldung hier im Forum führt zu diesen Hinweisen

Genau wie dort beschrieben. Arduino von arduini.cc und das Zip-File vom GitHub.

Hast du irgendwas an der Software geändert? Denn vermutlich ist dann irgendwo ein Zeichen zu viel oder zu wenig. Vielleicht versuchst du es noch einmal neu herunterzuladen.
Eine Alternative ist das online-update.

Nein, habe nichts geändert. Werde es jetzt mal mit dem onlinetool versuchen.

Das Übertragen des Sketches mit dem online-updater hat funktioniert.
Wäre trotzdem schön den Grund zu finden warum es über die Entwicklungsumgebung nicht klappt.

Dann müsstest du mal den Code aus Arduino hier einfügen. Nach dem Einfügen bitte markieren und mit </> formatieren.
Vermutlich musst du das wegen des Zeichenlimits auf 2 Beiträge aufteilen.

Meistens ist da irgendwo im Code ein falsches Zeichen, Klammer oder Semikolon reingerutscht, das die Arduino IDE die Codeteile nicht mehr klar zuweisen kann. Das kann schon beim Einfügen über Copy Paste passieren. Das zu finden ist oft ziemlich schwer.

Den Code habe ich als zip-Datei (TonUINO-DEV.zip) aus dem GitHub heruntergeladen, auf dem Rechner entpackt und dann aus der Entwicklungsumgebung heraus die Tonuino.ino aufgerufen.

Und hier ist das komplette Log vom Kompilieren:


Arduino: 1.8.16 (Linux), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

Tonuino:1470:18: error: 'folderSettings' was not declared in this scope
 bool setupFolder(folderSettings * theFolder) {
                  ^~~~~~~~~~~~~~
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino:1470:18: note: suggested alternative: 'resetSettings'
 bool setupFolder(folderSettings * theFolder) {
                  ^~~~~~~~~~~~~~
                  resetSettings
Tonuino:1470:35: error: 'theFolder' was not declared in this scope
 bool setupFolder(folderSettings * theFolder) {
                                   ^~~~~~~~~
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino:1470:35: note: suggested alternative: 'setupFolder'
 bool setupFolder(folderSettings * theFolder) {
                                   ^~~~~~~~~
                                   setupFolder
Tonuino:1516:15: error: 'nfcTagObject' was not declared in this scope
 bool readCard(nfcTagObject * nfcTag) {
               ^~~~~~~~~~~~
Tonuino:1516:30: error: 'nfcTag' was not declared in this scope
 bool readCard(nfcTagObject * nfcTag) {
                              ^~~~~~
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino: In function 'void setup()':
Tonuino:721:6: error: redefinition of 'void setup()'
 void setup() {
      ^~~~~
/tmp/untitled946731401.tmp/sketch_oct21a/sketch_oct21a.ino:1:6: note: 'void setup()' previously defined here
 void setup() {
      ^~~~~
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino: In function 'void loop()':
Tonuino:948:6: error: redefinition of 'void loop()'
 void loop() {
      ^~~~
/tmp/untitled946731401.tmp/sketch_oct21a/sketch_oct21a.ino:6:6: note: 'void loop()' previously defined here
 void loop() {
      ^~~~
Tonuino:1100:23: error: 'readCard' cannot be used as a function
   if (readCard(&myCard) == true) {
                       ^
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino: In function 'void adminMenu(bool)':
Tonuino:1236:52: error: 'setupFolder' cannot be used as a function
     setupFolder(&mySettings.shortCuts[shortcut - 1]);
                                                    ^
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino: In function 'bool setupFolder(folderSettings*)':
Tonuino:1470:44: error: 'bool setupFolder(folderSettings*)' redeclared as different kind of symbol
 bool setupFolder(folderSettings * theFolder) {
                                            ^
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino:1470:6: note: previous declaration 'bool setupFolder'
 bool setupFolder(folderSettings * theFolder) {
      ^~~~~~~~~~~
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino: In function 'void setupCard()':
Tonuino:1506:45: error: 'setupFolder' cannot be used as a function
   if (setupFolder(&newCard.nfcFolderSettings) == true)
                                             ^
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino: In function 'bool readCard(nfcTagObject*)':
Tonuino:1516:36: error: 'bool readCard(nfcTagObject*)' redeclared as different kind of symbol
 bool readCard(nfcTagObject * nfcTag) {
                                    ^
/tmp/untitled946731401.tmp/sketch_oct21a/Tonuino.ino:1516:6: note: previous declaration 'bool readCard'
 bool readCard(nfcTagObject * nfcTag) {
      ^~~~~~~~
exit status 1
'folderSettings' was not declared in this scope


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

Befolge mal diesem Rat.

Dann kannst du über das Symbol </>hier beim schreiben solch Texte als Code formatieren.

Das liest sich deutlicher

Hat er/sie gemacht. Das Problem war nur, dass der Zeilenumbruch für den Beginn der Kommentarfunktion nicht richtig war.

Anhand des Outputs sieht man jedenfalls, daß hier nicht nur der normale TonUINO Sketch versucht wird zu kompilieren sondern dort entweder mehrere Dateien offen sind oder zu einer vermixt wurden:

Was ist /tmp/untitled946731401.tmp/sketch_oct21a/sketch_oct21a.ino?

Vorschlag:

  1. Zip Datei neu runterladen und entpacken.
  2. IDE öffnen und alles schließen was da offen ist.
  3. Über ‚Datei öffnen‘ die Tonuino.ino öffnen
2 „Gefällt mir“

Beim Start der IDE ist folgender Sketch da. Wenn ich ihn lösche schließt sich auch die IDE wieder.
Letzendlich hat es über ‚Datei öffnen‘ funktioniert. Es öffnet sich ein zweites Fenster der IDE mit dem richtigen Sketch (Tonuino.ino).
grafik

1 „Gefällt mir“

Das ist normal. Die Arduino IDE stellt praktisch das Grundgerüst jedes Scetches fertig zur Verfügung. Das heißt die Hauptbestandteile jedes Scetches void setup() und void loop() sind sozusagen zum Befüllen mit Code vorbereitet.