Iの前に必要なクラス名スケッチをコンパイルしようとすると、次のエラーが発生します:
Sketch.ino:24:0からインクルードされたファイル:SerialRenderer.h:7:エラー:「{」トークンの前にクラス名が必要です
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_
。
SerialRenderer.hがメインスケッチファイルからインクルードされている場合、MenuSystem.hのインクルードは発生しないようです。 SerialRenderer.hのインクルードを削除すると、同じエラーが発生します。
コンパイラがMenuSystem.hを「見る」ことができるようにするために、私が見逃している単純なものはありますか?
編集:
インストールしたものよりも新しいバージョンのarduino-menusystemライブラリ(バージョン2.1.1)を探していたことがわかりました。そのバージョンにはMenuComponentRendererというクラスがありませんでした。
https://github.com/jonblack/arduino-menusystem/tree/master aから最新バージョンを取得しました>正常にコンパイルされます。