Skip to content

Naming Conflict: attribute_t in M5Unified and Matter Libraries #143

@kyjibato

Description

@kyjibato

Description

When compiling an Arduino project that uses the Arduino-ESP32 core Matter library (v3.1.0) together with M5Unified (v0.2.2) on M5Stack Atom, I encounter a compilation error caused by an ambiguous reference to attribute_t. It appears that the Matter library defines attribute_t in esp_matter_core.h, and M5Unified (via M5GFX) also declares attribute_t as an enum in enum.hpp.

Sketch

#include <M5Unified.h>
#include <Matter.h>

void setup() {
  M5.begin();
  Matter.begin();

  // ...
}

void loop() {
  M5.update();
  // ...
}

Debug Message

In file included from .../MatterGenericSwitch.h:20,
                 from .../Matter.h:22,
                 from src/main.cpp:23:
/.../MatterEndPoint.h:41:3: error: reference to 'attribute_t' is ambiguous
   41 |   attribute_t *getAttribute(uint32_t cluster_id, uint32_t attribute_id) {
      |   ^~~~~~~~~~~

... (multiple lines with similar 'attribute_t' is ambiguous errors) ...

Related espressif/arduino-esp32#10804

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