I Podczas próby skompilowania szkicu pojawia się następujący błąd:
W pliku dołączonym do sketch.ino: 24: 0: SerialRenderer.h: 7: błąd : oczekiwana nazwa klasy przed „{” tokenem
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_
Zawartość MenuSystem.h można znaleźć pod adresem https://github.com/jonblack/arduino-menusystem/blob/master/MenuSystem.h .
Wygląda na to, że dołączanie MenuSystem.h nie ma miejsca, gdy SerialRenderer.h jest dołączany z mojego głównego pliku szkicu. Otrzymuję ten sam błąd, jeśli uwzględnienie w SerialRenderer.h zostanie usunięte.
Czy brakuje mi czegoś prostego, aby kompilator mógł „zobaczyć” MenuSystem.h?
EDYCJA:
Okazało się, że patrzyłem na nowszą wersję biblioteki arduino-menusystem niż zainstalowałem (wersja 2.1.1). Ta wersja nie miała klasy o nazwie MenuComponentRenderer.
Pobrałem najnowszą wersję z https://github.com/jonblack/arduino-menusystem/tree/master i kompiluje się dobrze.
Odpowiedź
Najprawdopodobniej jest to spowodowane tym, że poprawna wersja biblioteki MenuSystem nie jest prawidłowo zainstalowany. Sprawdź, czy możesz dodać bibliotekę do swojego szkicu.
EDYTUJ : dodano, że również wersja powinna bądź poprawny
Komentarze
- Mogę dołączyć bibliotekę do mojego szkicu za pomocą Sketch > Dołącz bibliotekę. Menedżer bibliotek pokazuje również, że jest zainstalowana wersja 2.1.1.
- Pamiętaj, aby dodać dołączenie do szkicu. Kompilacja obejrzy szkic zawiera dodanie niezbędnych ścieżek.
- @MikaelPatel Mój główny szkic zawiera zarówno SerialRenderer.h, jak i MenuSystem.h, ale otrzymuję ten sam błąd niezależnie od tego, czy MenuSystem.h jest w zestawie.
- Rzeczywiście wersja jest również ważna.