PlatformIO 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() {
    }
    

    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 output:

    > 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.