I Estou recebendo o seguinte erro ao tentar compilar meu esboço:
No arquivo incluído em sketch.ino: 24: 0: SerialRenderer.h: 7: erro : nome de classe esperado antes de “{” 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_
O conteúdo de MenuSystem.h pode ser encontrado em https://github.com/jonblack/arduino-menusystem/blob/master/MenuSystem.h .
Parece que a inclusão de MenuSystem.h não acontece quando SerialRenderer.h está incluído em meu arquivo de esboço principal. Recebo o mesmo erro se a inclusão em SerialRenderer.h for removida.
Há algo simples que estou faltando para que o compilador possa “ver” MenuSystem.h?
EDITAR:
Acontece que eu estava olhando para uma versão mais recente da biblioteca arduino-menusystem do que a que tinha instalado (versão 2.1.1). Essa versão não tinha uma classe chamada MenuComponentRenderer.
Retirei a versão mais recente de https://github.com/jonblack/arduino-menusystem/tree/master e compila bem.
Resposta
Provavelmente, é causado pelo fato de que uma versão correta da biblioteca MenuSystem não é devidamente instalado. Verifique se você pode adicionar a biblioteca ao seu esboço.
EDIT : adicionado que também a versão deve esteja correto
Comentários
- Posso incluir a biblioteca em meu esboço através do Sketch > Incluir biblioteca. Além disso, o Library Manager mostra que a versão 2.1.1 está instalada.
- Rembember para adicionar a inclusão ao esboço. A construção vai olhar para o esboço inclui para adicionar os caminhos necessários.
- @MikaelPatel Meu esboço principal está incluindo SerialRenderer.h e MenuSystem.h, mas recebo o mesmo erro seja MenuSystem.h ou não incluído.
- Na verdade, a versão também é importante.