Skip to content

Latest version 0.2.21 introduces build errors for the StackChan library #12

Description

@jjs357

If I revert to 0.2.20, the errors go away.

In file included from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.cpp:6:
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:26:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::setDirection(uint8_t, bool)'
   26 |     void setDirection(uint8_t pin, bool direction) override;
      |          ^~~~~~~~~~~~
In file included from /Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/M5Unified.hpp:68,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:9:
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:33:18: note: overridden function is 'virtual bool m5::IOExpander_Base::setDirection(uint8_t, bool)'
   33 |     virtual bool setDirection(uint8_t pin, bool direction) = 0;
      |                  ^~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:28:10: error: 'void m5::PY32IOExpander_Class::enablePull(uint8_t, bool)' marked 'override', but does not override
   28 |     void enablePull(uint8_t pin, bool enablePull) override;
      |          ^~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:31:10: error: 'void m5::PY32IOExpander_Class::setPullMode(uint8_t, bool)' marked 'override', but does not override
   31 |     void setPullMode(uint8_t pin, bool mode) override;
      |          ^~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:36:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::setHighImpedance(uint8_t, bool)'
   36 |     void setHighImpedance(uint8_t pin, bool enable) override;
      |          ^~~~~~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:42:18: note: overridden function is 'virtual bool m5::IOExpander_Base::setHighImpedance(uint8_t, bool)'
   42 |     virtual bool setHighImpedance(uint8_t pin, bool enable) = 0;
      |                  ^~~~~~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:40:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::digitalWrite(uint8_t, bool)'
   40 |     void digitalWrite(uint8_t pin, bool level) override;
      |          ^~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:48:18: note: overridden function is 'virtual bool m5::IOExpander_Base::digitalWrite(uint8_t, bool)'
   48 |     virtual bool digitalWrite(uint8_t pin, bool level) = 0;
      |                  ^~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:44:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::resetIrq()'
   44 |     void resetIrq() override;
      |          ^~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:63:18: note: overridden function is 'virtual bool m5::IOExpander_Base::resetIrq()'
   63 |     virtual bool resetIrq() = 0;
      |                  ^~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:46:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::disableIrq()'
   46 |     void disableIrq() override;
      |          ^~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:67:18: note: overridden function is 'virtual bool m5::IOExpander_Base::disableIrq()'
   67 |     virtual bool disableIrq() = 0;
      |                  ^~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:48:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::enableIrq()'
   48 |     void enableIrq() override;
      |          ^~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:71:18: note: overridden function is 'virtual bool m5::IOExpander_Base::enableIrq()'
   71 |     virtual bool enableIrq() = 0;
      |                  ^~~~~~~~~
In file included from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/M5StackChan.cpp:7:
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:26:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::setDirection(uint8_t, bool)'
   26 |     void setDirection(uint8_t pin, bool direction) override;
      |          ^~~~~~~~~~~~
In file included from /Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/M5Unified.hpp:68,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/M5Unified.h:5,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/utils/touch_sensor/../../drivers/Si12T/Si12T.h:5,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/utils/touch_sensor/touch_sensor.h:7,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/M5StackChan.h:7,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/M5StackChan.cpp:6:
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:33:18: note: overridden function is 'virtual bool m5::IOExpander_Base::setDirection(uint8_t, bool)'
   33 |     virtual bool setDirection(uint8_t pin, bool direction) = 0;
      |                  ^~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:28:10: error: 'void m5::PY32IOExpander_Class::enablePull(uint8_t, bool)' marked 'override', but does not override
   28 |     void enablePull(uint8_t pin, bool enablePull) override;
      |          ^~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:31:10: error: 'void m5::PY32IOExpander_Class::setPullMode(uint8_t, bool)' marked 'override', but does not override
   31 |     void setPullMode(uint8_t pin, bool mode) override;
      |          ^~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:36:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::setHighImpedance(uint8_t, bool)'
   36 |     void setHighImpedance(uint8_t pin, bool enable) override;
      |          ^~~~~~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:42:18: note: overridden function is 'virtual bool m5::IOExpander_Base::setHighImpedance(uint8_t, bool)'
   42 |     virtual bool setHighImpedance(uint8_t pin, bool enable) = 0;
      |                  ^~~~~~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:40:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::digitalWrite(uint8_t, bool)'
   40 |     void digitalWrite(uint8_t pin, bool level) override;
      |          ^~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:48:18: note: overridden function is 'virtual bool m5::IOExpander_Base::digitalWrite(uint8_t, bool)'
   48 |     virtual bool digitalWrite(uint8_t pin, bool level) = 0;
      |                  ^~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:44:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::resetIrq()'
   44 |     void resetIrq() override;
      |          ^~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:63:18: note: overridden function is 'virtual bool m5::IOExpander_Base::resetIrq()'
   63 |     virtual bool resetIrq() = 0;
      |                  ^~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:46:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::disableIrq()'
   46 |     void disableIrq() override;
      |          ^~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:67:18: note: overridden function is 'virtual bool m5::IOExpander_Base::disableIrq()'
   67 |     virtual bool disableIrq() = 0;
      |                  ^~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:48:10: error: conflicting return type specified for 'virtual void m5::PY32IOExpander_Class::enableIrq()'
   48 |     void enableIrq() override;
      |          ^~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:71:18: note: overridden function is 'virtual bool m5::IOExpander_Base::enableIrq()'
   71 |     virtual bool enableIrq() = 0;
      |                  ^~~~~~~~~
In file included from /Users/jjs/Library/Arduino15/packages/esp32/tools/esp-x32/2601/xtensa-esp-elf/include/c++/14.2.0/memory:78,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/lgfx/v1/platforms/esp32/../esp32/../../../utility/../internal/memory.h:13,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/lgfx/v1/platforms/esp32/../esp32/../../../utility/result.hpp:35,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/lgfx/v1/platforms/esp32/../esp32/common.hpp:22,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/lgfx/v1/platforms/esp32/../common.hpp:22,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/lgfx/v1/platforms/esp32/Bus_SPI.hpp:57,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/lgfx/v1/platforms/device.hpp:66,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5GFX/src/M5GFX.h:47,
                 from /Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/M5Unified.hpp:19:
/Users/jjs/Library/Arduino15/packages/esp32/tools/esp-x32/2601/xtensa-esp-elf/include/c++/14.2.0/bits/unique_ptr.h: In instantiation of 'std::__detail::__unique_ptr_t<_Tp> std::make_unique(_Args&& ...) [with _Tp = m5::PY32IOExpander_Class; _Args = {}; __detail::__unique_ptr_t<_Tp> = __detail::__unique_ptr_t<m5::PY32IOExpander_Class>]':
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/M5StackChan.cpp:42:62:   required from here
   42 |     _io_expander = std::make_unique<m5::PY32IOExpander_Class>();
      |                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/Users/jjs/Library/Arduino15/packages/esp32/tools/esp-x32/2601/xtensa-esp-elf/include/c++/14.2.0/bits/unique_ptr.h:1076:30: error: invalid new-expression of abstract class type 'm5::PY32IOExpander_Class'
 1076 |     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5StackChan/src/drivers/PY32IOExpander/PY32IOExpander.hpp:12:7: note:   because the following virtual functions are pure within 'm5::PY32IOExpander_Class':
   12 | class PY32IOExpander_Class : public IOExpander_Base {
      |       ^~~~~~~~~~~~~~~~~~~~
/Users/jjs/Desktop/Sketchbook/libraries/M5Unified/src/utility/IOExpander_Base.hpp:38:18: note:     'virtual bool m5::IOExpander_Base::setPullMode(uint8_t, gpio_pull_t)'
   38 |     virtual bool setPullMode(uint8_t pin, gpio_pull_t mode) = 0;
      |                  ^~~~~~~~~~~
Multiple libraries were found for "WiFi.h"
  Used: /Users/jjs/Library/Arduino15/packages/esp32/hardware/esp32/3.3.11/libraries/WiFi
  Not used: /Users/jjs/Desktop/Sketchbook/libraries/WiFiNINA
exit status 1

Compilation error: exit status 1

Suggestions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions