M5stack-core-esp32: collect2.exe: error: ld returned 1 exit status

Hello, everyone.
I used the search, but couldn’t find a suitable answer. I have an M5Stack and if I want to compile the following program, I get an error with PlatformIO. With Arduino it works. What could be the reason?

Windows 10; Home: 2.0.0; Core 3.6.5

Sample programm

#include <M5Stack.h>

void setup() {
  M5.begin();
  M5.lcd.fillScreen(TFT_WHITE);
  M5.lcd.setTextColor(TFT_BLACK);
  M5.lcd.setTextDatum(CC_DATUM);
  M5.lcd.drawString("Testing 123...", 160, 120);
}

void loop() {
}

Terminal output:

rocessing m5stack-core-esp32 (framework: arduino; platform: espressif32; board: m5stack-core-esp32)

Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/m5stack-core-esp32.html
PLATFORM: Espressif 32 > M5Stack Core ESP32
HARDWARE: ESP32 240MHz 320KB RAM (4MB Flash)
DEBUG: CURRENT(esp-prog) EXTERNAL(esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
Converting main.ino
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 41 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <M5Stack> 0.2.5
|   |-- <Wire> 1.0.1
|   |-- <SPI> 1.0
|   |-- <FS> 1.0
|   |-- <SPIFFS> 1.0
|   |   |-- <FS> 1.0
|   |-- <TFT_eSPI> 1.4.8
|   |   |-- <SPI> 1.0
|   |   |-- <FS> 1.0
|   |   |-- <SPIFFS> 1.0
|   |   |   |-- <FS> 1.0
|   |-- <SD(esp32)> 1.0.5
|   |   |-- <SPI> 1.0
|   |   |-- <FS> 1.0
Compiling .pioenvs\m5stack-core-esp32\src\main.ino.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\MPU9250.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\Speaker.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\Sprite.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\qrcode.c.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\quaternionFilters.cpp.o
.piolibdeps\M5Stack_ID1851\src\utility\quaternionFilters.cpp:38:14: warning: 'zeta' defined but not used [-Wunused-variable]
static float zeta = sqrt(3.0f / 4.0f) * GyroMeasDrift;
^
.piolibdeps\M5Stack_ID1851\src\utility\Sprite.cpp: In member function 'virtual void TFT_eSprite::drawChar(int32_t, int32_t, unsigned char, uint32_t, uint32_t, uint8_t)':
.piolibdeps\M5Stack_ID1851\src\utility\Sprite.cpp:1218:16: warning: unused variable 'xa' [-Wunused-variable]
xa = pgm_read_byte(&glyph->xAdvance);
^
Linking .pioenvs\m5stack-core-esp32\firmware.elf
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::width()':

.... Many more warnings

collect2.exe: error: ld returned 1 exit status
*** [.pioenvs\m5stack-core-esp32\firmware.elf] Error 1
=================================================================== [ERROR] Took 16.19 seconds ===================================================================
The terminal process terminated with exit code: 1

We’ll probably need the full terminal output, as the warnings shouldn’t make the compile fail, and I don’t see the cause of the failure - it may be in the portion that you snipped! :wink:

Also, what’s your platformio.ini look like?

Thanks for the help.

platformio.ini:

[env:m5stack-core-esp32]

platform = espressif32

board = m5stack-core-esp32

framework = arduino

upload_speed = 921600

targets = upload

; lib_extra_dirs = ~/Documents/Arduino/libraries/

lib_deps = M5Stack

Terminal:

> Executing task in folder M5DisplayTest: C:\Users\Matthias\.platformio\penv\Scripts\platformio.exe run <
Processing m5stack-core-esp32 (framework: arduino; platform: espressif32; board: m5stack-core-esp32)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/m5stack-core-esp32.html
PLATFORM: Espressif 32 > M5Stack Core ESP32
HARDWARE: ESP32 240MHz 320KB RAM (4MB Flash)
DEBUG: CURRENT(esp-prog) EXTERNAL(esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
Converting main.ino
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 41 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <M5Stack> 0.2.5
|   |-- <Wire> 1.0.1
|   |-- <SPI> 1.0
|   |-- <FS> 1.0
|   |-- <SPIFFS> 1.0
|   |   |-- <FS> 1.0
|   |-- <TFT_eSPI> 1.4.8
|   |   |-- <SPI> 1.0
|   |   |-- <FS> 1.0
|   |   |-- <SPIFFS> 1.0
|   |   |   |-- <FS> 1.0
|   |-- <SD(esp32)> 1.0.5
|   |   |-- <SPI> 1.0
|   |   |-- <FS> 1.0
Compiling .pioenvs\m5stack-core-esp32\src\main.ino.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\MPU9250.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\Speaker.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\Sprite.cpp.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\qrcode.c.o
Compiling .pioenvs\m5stack-core-esp32\lib13c\M5Stack_ID1851\utility\quaternionFilters.cpp.o
.piolibdeps\M5Stack_ID1851\src\utility\quaternionFilters.cpp:38:14: warning: 'zeta' defined but not used [-Wunused-variable]
static float zeta = sqrt(3.0f / 4.0f) * GyroMeasDrift;
^
.piolibdeps\M5Stack_ID1851\src\utility\Sprite.cpp: In member function 'virtual void TFT_eSprite::drawChar(int32_t, int32_t, unsigned char, uint32_t, uint32_t, uint8_t)':
.piolibdeps\M5Stack_ID1851\src\utility\Sprite.cpp:1218:16: warning: unused variable 'xa' [-Wunused-variable]
xa = pgm_read_byte(&glyph->xAdvance);
^
Linking .pioenvs\m5stack-core-esp32\firmware.elf
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::width()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI5widthEv+0x0): multiple definition of `TFT_eSPI::width()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI5widthEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::height()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI6heightEv+0x0): multiple definition of `TFT_eSPI::height()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI6heightEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::write(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI5writeEh+0x0): multiple definition of `TFT_eSPI::write(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI5writeEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawLine(int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI8drawLineEiiiij+0x0): multiple definition of `TFT_eSPI::drawLine(int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI8drawLineEiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::TFT_eSPI(short, short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPIC2Ess+0x0): multiple definition of `TFT_eSPI::TFT_eSPI(short, short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPIC2Ess+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::TFT_eSPI(short, short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPIC2Ess+0x0): multiple definition of `TFT_eSPI::TFT_eSPI(short, short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPIC2Ess+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::spiwrite(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI8spiwriteEh+0x0): multiple definition of `TFT_eSPI::spiwrite(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI8spiwriteEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::writecommand(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12writecommandEh+0x0): multiple definition of `TFT_eSPI::writecommand(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12writecommandEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::writedata(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9writedataEh+0x0): multiple definition of `TFT_eSPI::writedata(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9writedataEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setRotation(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11setRotationEh+0x0): multiple definition of `TFT_eSPI::setRotation(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11setRotationEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::commandList(unsigned char const*)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11commandListEPKh+0x0): multiple definition of `TFT_eSPI::commandList(unsigned char const*)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11commandListEPKh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::readcommand8(unsigned char, unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12readcommand8Ehh+0x0): multiple definition of `TFT_eSPI::readcommand8(unsigned char, unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12readcommand8Ehh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::readcommand16(unsigned char, unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13readcommand16Ehh+0x0): multiple definition of `TFT_eSPI::readcommand16(unsigned char, unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13readcommand16Ehh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::readcommand32(unsigned char, unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13readcommand32Ehh+0x0): multiple definition of `TFT_eSPI::readcommand32(unsigned char, unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13readcommand32Ehh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `readByte()':
In_eSPI.cpp:(.text._Z8readBytev+0x0): multiple definition of `readByte()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._Z8readBytev+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `busDir(unsigned int, unsigned char)':
In_eSPI.cpp:(.text._Z6busDirjh+0x0): multiple definition of `busDir(unsigned int, unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._Z6busDirjh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setSwapBytes(bool)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12setSwapBytesEb+0x0): multiple definition of `TFT_eSPI::setSwapBytes(bool)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12setSwapBytesEb+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::getSwapBytes()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12getSwapBytesEv+0x0): multiple definition of `TFT_eSPI::getSwapBytes()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12getSwapBytesEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawCircle(int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10drawCircleEiiij+0x0): multiple definition of `TFT_eSPI::drawCircle(int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10drawCircleEiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawCircleHelper(int, int, int, unsigned char, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI16drawCircleHelperEiiihj+0x0): multiple definition of `TFT_eSPI::drawCircleHelper(int, int, int, unsigned char, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI16drawCircleHelperEiiihj+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fillCircle(int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10fillCircleEiiij+0x0): multiple definition of `TFT_eSPI::fillCircle(int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10fillCircleEiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fillCircleHelper(int, int, int, unsigned char, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI16fillCircleHelperEiiihij+0x0): multiple definition of `TFT_eSPI::fillCircleHelper(int, int, int, unsigned char, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI16fillCircleHelperEiiihij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fillScreen(unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10fillScreenEj+0x0): multiple definition of `TFT_eSPI::fillScreen(unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10fillScreenEj+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawRect(int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI8drawRectEiiiij+0x0): multiple definition of `TFT_eSPI::drawRect(int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI8drawRectEiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawRoundRect(int, int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13drawRoundRectEiiiiij+0x0): multiple definition of `TFT_eSPI::drawRoundRect(int, int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13drawRoundRectEiiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fillRoundRect(int, int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13fillRoundRectEiiiiij+0x0): multiple definition of `TFT_eSPI::fillRoundRect(int, int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13fillRoundRectEiiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawTriangle(int, int, int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12drawTriangleEiiiiiij+0x0): multiple definition of `TFT_eSPI::drawTriangle(int, int, int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12drawTriangleEiiiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fillTriangle(int, int, int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12fillTriangleEiiiiiij+0x0): multiple definition of `TFT_eSPI::fillTriangle(int, int, int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12fillTriangleEiiiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawBitmap(short, short, unsigned char const*, short, short, unsigned
short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10drawBitmapEssPKhsst+0x0): multiple definition of `TFT_eSPI::drawBitmap(short, short, unsigned char const*, short, short, unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10drawBitmapEssPKhsst+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawXBitmap(short, short, unsigned char const*, short, short, unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11drawXBitmapEssPKhsst+0x0): multiple definition of `TFT_eSPI::drawXBitmap(short, short, unsigned char const*, short, short, unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11drawXBitmapEssPKhsst+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawXBitmap(short, short, unsigned char const*, short, short, unsigned short, unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11drawXBitmapEssPKhsstt+0x0): multiple definition of `TFT_eSPI::drawXBitmap(short, short, unsigned char const*, short, short, unsigned short, unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11drawXBitmapEssPKhsstt+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setCursor(short, short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9setCursorEss+0x0): multiple definition of `TFT_eSPI::setCursor(short, short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9setCursorEss+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setCursor(short, short, unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9setCursorEssh+0x0): multiple definition of `TFT_eSPI::setCursor(short, short, unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9setCursorEssh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::getCursorX()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10getCursorXEv+0x0): multiple definition of `TFT_eSPI::getCursorX()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10getCursorXEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::getCursorY()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10getCursorYEv+0x0): multiple definition of `TFT_eSPI::getCursorY()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10getCursorYEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextSize(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11setTextSizeEh+0x0): multiple definition of `TFT_eSPI::setTextSize(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11setTextSizeEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextColor(unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12setTextColorEt+0x0): multiple definition of `TFT_eSPI::setTextColor(unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12setTextColorEt+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextColor(unsigned short, unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12setTextColorEtt+0x0): multiple definition of `TFT_eSPI::setTextColor(unsigned short, unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12setTextColorEtt+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setBitmapColor(unsigned short, unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI14setBitmapColorEtt+0x0): multiple definition of `TFT_eSPI::setBitmapColor(unsigned short, unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI14setBitmapColorEtt+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextWrap(bool, bool)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11setTextWrapEbb+0x0): multiple definition of `TFT_eSPI::setTextWrap(bool, bool)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11setTextWrapEbb+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextDatum(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12setTextDatumEh+0x0): multiple definition of `TFT_eSPI::setTextDatum(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12setTextDatumEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextPadding(unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI14setTextPaddingEt+0x0): multiple definition of `TFT_eSPI::setTextPadding(unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI14setTextPaddingEt+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::getRotation()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11getRotationEv+0x0): multiple definition of `TFT_eSPI::getRotation()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11getRotationEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::getTextDatum()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI12getTextDatumEv+0x0): multiple definition of `TFT_eSPI::getTextDatum()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI12getTextDatumEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::textWidth(String const&)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9textWidthERK6String+0x0): multiple definition of `TFT_eSPI::textWidth(String const&)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9textWidthERK6String+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::textWidth(char const*)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9textWidthEPKc+0x0): multiple definition of `TFT_eSPI::textWidth(char const*)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9textWidthEPKc+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fontsLoaded()':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11fontsLoadedEv+0x0): multiple definition of `TFT_eSPI::fontsLoaded()'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11fontsLoadedEv+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fontHeight(short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10fontHeightEs+0x0): multiple definition of `TFT_eSPI::fontHeight(short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10fontHeightEs+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setAddrWindow(int, int, int, int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13setAddrWindowEiiii+0x0): multiple definition of `TFT_eSPI::setAddrWindow(int, int, int, int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13setAddrWindowEiiii+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::readAddrWindow(int, int, int, int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI14readAddrWindowEiiii+0x0): multiple definition of `TFT_eSPI::readAddrWindow(int, int, int, int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI14readAddrWindowEiiii+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::readRectRGB(int, int, int, int, unsigned char*)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11readRectRGBEiiiiPh+0x0): multiple definition of `TFT_eSPI::readRectRGB(int, int, int, int, unsigned char*)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11readRectRGBEiiiiPh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::pushColor(unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9pushColorEt+0x0): multiple definition of `TFT_eSPI::pushColor(unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9pushColorEt+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::pushColors(unsigned char*, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10pushColorsEPhj+0x0): multiple definition of `TFT_eSPI::pushColors(unsigned char*, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10pushColorsEPhj+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::pushColors(unsigned short*, unsigned int, bool)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10pushColorsEPtjb+0x0): multiple definition of `TFT_eSPI::pushColors(unsigned short*, unsigned int, bool)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10pushColorsEPtjb+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::color565(unsigned char, unsigned char, unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI8color565Ehhh+0x0): multiple definition of `TFT_eSPI::color565(unsigned char, unsigned char, unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI8color565Ehhh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::readPixel(int, int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI9readPixelEii+0x0): multiple definition of `TFT_eSPI::readPixel(int, int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI9readPixelEii+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::color16to8(unsigned short)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10color16to8Et+0x0): multiple definition of `TFT_eSPI::color16to8(unsigned short)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10color16to8Et+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::color8to16(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10color8to16Eh+0x0): multiple definition of `TFT_eSPI::color8to16(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10color8to16Eh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::invertDisplay(bool)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13invertDisplayEb+0x0): multiple definition of `TFT_eSPI::invertDisplay(bool)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13invertDisplayEb+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawString(String const&, int, int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10drawStringERK6Stringii+0x0): multiple definition of `TFT_eSPI::drawString(String const&, int, int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10drawStringERK6Stringii+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawString(char const*, int, int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10drawStringEPKcii+0x0): multiple definition of `TFT_eSPI::drawString(char const*, int, int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10drawStringEPKcii+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawNumber(long, int, int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI10drawNumberElii+0x0): multiple definition of `TFT_eSPI::drawNumber(long, int, int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI10drawNumberElii+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setFreeFont(GFXfont const*)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11setFreeFontEPK7GFXfont+0x0): multiple definition of `TFT_eSPI::setFreeFont(GFXfont const*)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11setFreeFontEPK7GFXfont+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::setTextFont(unsigned char)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI11setTextFontEh+0x0): multiple definition of `TFT_eSPI::setTextFont(unsigned char)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI11setTextFontEh+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `writeBlock(unsigned short, unsigned int)':
In_eSPI.cpp:(.text._Z10writeBlocktj+0x0): multiple definition of `writeBlock(unsigned short, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._Z10writeBlocktj+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawFastHLine(int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13drawFastHLineEiiij+0x0): multiple definition of `TFT_eSPI::drawFastHLine(int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13drawFastHLineEiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::fillRect(int, int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI8fillRectEiiiij+0x0): multiple definition of `TFT_eSPI::fillRect(int, int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI8fillRectEiiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::drawFastVLine(int, int, int, unsigned int)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI13drawFastVLineEiiij+0x0): multiple definition of `TFT_eSPI::drawFastVLine(int, int, int, unsigned int)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI13drawFastVLineEiiij+0x0): first defined here
.pioenvs\m5stack-core-esp32\lib13c\libM5Stack_ID1851.a(In_eSPI.cpp.o): In function `TFT_eSPI::getSetup(setup_t&)':
In_eSPI.cpp:(.text._ZN8TFT_eSPI8getSetupER7setup_t+0x0): multiple definition of `TFT_eSPI::getSetup(setup_t&)'
.pioenvs\m5stack-core-esp32\lib385\libTFT_eSPI_ID1559.a(TFT_eSPI.cpp.o):TFT_eSPI.cpp:(.text._ZN8TFT_eSPI8getSetupER7setup_t+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
*** [.pioenvs\m5stack-core-esp32\firmware.elf] Error 1
=================================================================== [ERROR] Took 16.19 seconds ===================================================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

Odd, I can compile that code snippet you gave with that same environment just fine… but the library dependency graph is different to yours… yours is saying the program needs/wants <TFT_eSPI> 1.4.8 as well, but that seems to be the cause of the errors.

Dependency Graph
|-- <M5Stack> 0.2.5
|   |-- <FS> 1.0
|   |-- <Wire> 1.0.1
|   |-- <SPI> 1.0
|   |-- <SPIFFS> 1.0
|   |   |-- <FS> 1.0
|   |-- <SD(esp32)> 1.0.5
|   |   |-- <FS> 1.0
|   |   |-- <SPI> 1.0

I’m not sure what’s going on there, as it appears to be the version specific to the core, so it should just work. All I can suggest is to make sure platformio’s files are up to date - pio update - or may try removing/reinstalling the espressif32 platform… pio platform uninstall espressif32 and pio platform install espressif32 … hopefully someone else will have ideas.

I tried both, it didn’t help. There are also no updates for the packages.

Two libraries attempt to define the same function. Since the working dependency graph doesn’t include TFT_eSPI, try adding lib_ignore = TFT_eSPI to your platformio.ini. Seems like you previously installed / used that library and now PIO thinks, based on the header files, that it needs this lib.

1 Like

Thanks, that solves my problem. :+1:

1 Like