I krijg de volgende foutmelding bij het compileren van mijn sketch:
In bestand opgenomen van sketch.ino: 24: 0: SerialRenderer.h: 7: fout : verwachte klassenaam voor “{” 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_
De inhoud van MenuSystem.h is te vinden op https://github.com/jonblack/arduino-menusystem/blob/master/MenuSystem.h .
Het lijkt erop dat het opnemen van MenuSystem.h niet gebeurt wanneer SerialRenderer.h is opgenomen in mijn hoofdschetsbestand. Ik krijg dezelfde foutmelding als de include in SerialRenderer.h wordt verwijderd.
Is er iets eenvoudigs dat ik mis zodat de compiler MenuSystem.h kan “zien”?
EDIT:
Blijkt dat ik naar een nieuwere versie van de arduino-menusystem-bibliotheek keek dan ik had geïnstalleerd (versie 2.1.1). Die versie had geen klasse met de naam MenuComponentRenderer.
Ik heb de laatste versie opgehaald van https://github.com/jonblack/arduino-menusystem/tree/master en het compileert prima.
Answer
Het wordt hoogstwaarschijnlijk veroorzaakt door het feit dat een correcte versie van de MenuSystem-bibliotheek niet correct geïnstalleerd. Controleer of u de bibliotheek aan uw schets kunt toevoegen.
EDIT : toegevoegd dat ook de versie wees correct
Opmerkingen
- Ik kan de bibliotheek in mijn schets opnemen via Sketch > Bibliotheek opnemen. Ook laat Library Manager zien dat versie 2.1.1 is geïnstalleerd.
- Rembember om de include toe te voegen aan de sketch. De build zal kijken naar de sketch inclusief om de nodige paden toe te voegen.
- @MikaelPatel Mijn belangrijkste sketch bevat zowel SerialRenderer.h als MenuSystem.h, maar ik krijg dezelfde foutmelding, ongeacht of MenuSystem.h is inbegrepen.
- De versie is inderdaad ook belangrijk.