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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *