I. Beim Versuch, meine Skizze zu kompilieren, wird die folgende Fehlermeldung angezeigt:

In der von sketch.ino enthaltenen Datei: 24: 0: SerialRenderer.h: 7: Fehler : erwarteter Klassenname vor „{“ Token

SerialRenderer.h

#ifndef SERIALRENDERER_H_ #define SERIALRENDERER_H_ #include <MenuSystem.h> class SerialRenderer : public MenuComponentRenderer { public: SerialRenderer(); virtual ~SerialRenderer(); public: // methods from MenuComponentRenderer virtual void render(Menu const& menu) const; virtual void render_menu_item(MenuItem const& menu_item) const; virtual void render_back_menu_item(BackMenuItem const& menu_item) const; virtual void render_numeric_menu_item(NumericMenuItem const& menu_item) const; virtual void render_menu(Menu const& menu) const; }; #endif // SERIALRENDERER_H_ 

Der Inhalt von MenuSystem.h finden Sie unter https://github.com/jonblack/arduino-menusystem/blob/master/MenuSystem.h .

Es scheint, dass das Einschließen von MenuSystem.h nicht erfolgt, wenn SerialRenderer.h aus meiner Hauptskizzendatei enthalten ist. Ich erhalte den gleichen Fehler, wenn das Include in SerialRenderer.h entfernt wird.

Fehlt mir etwas Einfaches, damit der Compiler MenuSystem.h „sehen“ kann?

BEARBEITEN:

Es stellte sich heraus, dass ich mir eine neuere Version der Arduino-Menüsystem-Bibliothek angesehen habe, als ich installiert hatte (Version 2.1.1). Diese Version hatte keine Klasse namens MenuComponentRenderer.

Ich habe die neueste Version von https://github.com/jonblack/arduino-menusystem/tree/master und es wird gut kompiliert.

Antwort

Dies wird höchstwahrscheinlich dadurch verursacht, dass eine korrekte Version der MenuSystem-Bibliothek nicht vorhanden ist Ordnungsgemäß installiert. Überprüfen Sie, ob Sie die Bibliothek zu Ihrer Skizze hinzufügen können.

BEARBEITEN : fügte hinzu, dass auch die Version sollte korrekt sein

Kommentare

  • Ich kann die Bibliothek über Sketch > Bibliothek einschließen in meine Skizze aufnehmen. Außerdem zeigt Library Manager, dass Version 2.1.1 installiert ist.
  • Erinnern Sie sich daran, das Include zur Skizze hinzuzufügen. Der Build untersucht die Skizzen-Includes, um die erforderlichen Pfade hinzuzufügen.
  • @MikaelPatel Meine Hauptskizze enthält sowohl SerialRenderer.h als auch MenuSystem.h, aber ich erhalte den gleichen Fehler, unabhängig davon, ob MenuSystem.h ist oder nicht enthalten.
  • In der Tat ist die Version auch wichtig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.