# Cannot compile WLED with USERMOD\_ROTARY\_ENCODER\_UI and USERMOD\_FOUR\_LINE\_DISPLAY

**URL:** <https://wled.discourse.group/t/cannot-compile-wled-with-usermod-rotary-encoder-ui-and-usermod-four-line-display/5522>\
**Category:** Usermods\
**Created:** [June 14, 2022, 2:28pm UTC](https://wled.discourse.group/t/cannot-compile-wled-with-usermod-rotary-encoder-ui-and-usermod-four-line-display/5522 "2022-06-14T14:28:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![fimmezwansch](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/fimmezwansch/32/3273_2.png) [@fimmezwansch](https://wled.discourse.group/u/fimmezwansch)\
**Post date:** [June 14, 2022, 2:28pm UTC](https://wled.discourse.group/t/cannot-compile-wled-with-usermod-rotary-encoder-ui-and-usermod-four-line-display/5522/1 "2022-06-14T14:28:56Z")

</div>

Hi there,  
I try to include an OLED Display together with a rotary encoder.  
I’m using VS Code. Initial cloning from github , compiling und uploading without changes to a Wemos D1 Mini was working fine.  
No I want let the next D1 working with a display and rotary encoder.  
What I did:

- copy platformio\_override.ini.sample from …\usermods\usermod\_v2\_rotary\_encoder\_ui to the folder in WLED Project where platformio.ini is located
- rename file to platformio\_override.ini
- add definitions to usermod\_list.cpp:

```auto
/*
 * Register your v2 usermods here!
 * (for v1 usermods using just usermod.cpp, you can ignore this file)
 */
#define USERMOD_ROTARY_ENCODER_UI
#define USERMOD_FOUR_LINE_DISPLAY
#define ENCODER_DT_PIN 12
#define ENCODER_CLK_PIN 14
#define ENCODER_SW_PIN 13
#define FLD_PIN_SCL 5
#define FLD_PIN_SDA 4
/*
 * Add/uncomment your usermod filename here (and once more below)
 * || || ||
 * \/ \/ \/
 */
//#include "../usermods/EXAMPLE_v2/usermod_v2_example.h"

```

I tried to compile several times with no success at all. There are a lot of warnings regarding libs:  
(I did not shorten it, I don’t know, what is important to solve the problem)  
I have seen, that WLED without these usermods uses newer versions of some libs. Can it be that the lib dependencies from platformio\_override.ini are not working with current WLED version? Or am I wrong? Perhaps is there more ToDo?

Thanks a lot  
Roland

… sorry for asking in github before …

```auto
[spoiler]
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::_s_error(void*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8_s_errorEPvl+0xc): multiple definition of `AsyncClient::_s_error(void*, long)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8_s_errorEPvl+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::_s_connected(void*, void*, long)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_connectedEPvS0_l+0x10): multiple definition of `AsyncClient::_s_connected(void*, void*, long)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_connectedEPvS0_l+0x4): first defined herec:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::connect(IPAddress, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectE9IPAddresst+0x20): multiple definition of `AsyncClient::connect(IPAddress, unsigned short)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectE9IPAddresst+0x1c): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::_s_dns_found(char const*, ip_addr*, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_dns_foundEPKcP7ip_addrPv+0x4): multiple definition of `AsyncClient::_s_dns_found(char const*, ip_addr*, void*)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12_s_dns_foundEPKcP7ip_addrPv+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::connect(char const*, unsigned short)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectEPKct+0x14): multiple definition of `AsyncClient::connect(char const*, unsigned short)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7connectEPKct+0x14): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::operator==(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClienteqERKS_+0x0): multiple definition of `AsyncClient::operator==(AsyncClient const&)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClienteqERKS_+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::abort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5abortEv+0x4): multiple definition of `AsyncClient::abort()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5abortEv+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::free()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4freeEv+0x4): multiple definition of `AsyncClient::free()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4freeEv+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::send()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4sendEv+0x8): multiple definition of `AsyncClient::send()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient4sendEv+0x8): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::ack(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3ackEj+0x4): multiple definition of `AsyncClient::ack(unsigned int)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3ackEj+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::operator+=(AsyncClient const&)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClientpLERKS_+0x0): multiple definition of `AsyncClient::operator+=(AsyncClient const&)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClientpLERKS_+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::setRxTimeout(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12setRxTimeoutEj+0x0): multiple definition of `AsyncClient::setRxTimeout(unsigned int)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12setRxTimeoutEj+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getRxTimeout()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getRxTimeoutEv+0x0): multiple definition of `AsyncClient::getRxTimeout()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getRxTimeoutEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getAckTimeout()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getAckTimeoutEv+0x0): multiple definition of `AsyncClient::getAckTimeout()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getAckTimeoutEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::setAckTimeout(unsigned int)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13setAckTimeoutEj+0x0): multiple definition of `AsyncClient::setAckTimeout(unsigned int)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13setAckTimeoutEj+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::setNoDelay(bool)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10setNoDelayEb+0x0): multiple definition of `AsyncClient::setNoDelay(bool)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10setNoDelayEb+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getNoDelay()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10getNoDelayEv+0x0): multiple definition of `AsyncClient::getNoDelay()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10getNoDelayEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getMss()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6getMssEv+0x0): multiple definition of `AsyncClient::getMss()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient6getMssEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getRemoteAddress()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient16getRemoteAddressEv+0x0): multiple definition of `AsyncClient::getRemoteAddress()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient16getRemoteAddressEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getRemotePort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getRemotePortEv+0x0): multiple definition of `AsyncClient::getRemotePort()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13getRemotePortEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getLocalAddress()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient15getLocalAddressEv+0x0): multiple definition of `AsyncClient::getLocalAddress()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient15getLocalAddressEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::getLocalPort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getLocalPortEv+0x0): multiple definition of `AsyncClient::getLocalPort()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12getLocalPortEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::remoteIP()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8remoteIPEv+0xc): multiple definition of `AsyncClient::remoteIP()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8remoteIPEv+0xc): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::remotePort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10remotePortEv+0x4): multiple definition of `AsyncClient::remotePort()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10remotePortEv+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::localIP()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7localIPEv+0xc): multiple definition of `AsyncClient::localIP()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient7localIPEv+0xc): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::localPort()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9localPortEv+0x4): multiple definition of `AsyncClient::localPort()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9localPortEv+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::state()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5stateEv+0x0): multiple definition of `AsyncClient::state()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5stateEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::connected()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9connectedEv+0x0): multiple definition of `AsyncClient::connected()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9connectedEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::connecting()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10connectingEv+0x0): multiple definition of `AsyncClient::connecting()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient10connectingEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::disconnecting()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13disconnectingEv+0x0): multiple definition of `AsyncClient::disconnecting()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient13disconnectingEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::disconnected()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12disconnectedEv+0x0): multiple definition of `AsyncClient::disconnected()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient12disconnectedEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::freeable()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8freeableEv+0x4): multiple definition of `AsyncClient::freeable()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8freeableEv+0x4): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::space()':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5spaceEv+0x0): multiple definition of `AsyncClient::space()'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient5spaceEv+0x0): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::add(char const*, unsigned int, unsigned char)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3addEPKcjh+0x8): multiple definition of `AsyncClient::add(char const*, unsigned int, unsigned char)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient3addEPKcjh+0x8): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::write(char const*, unsigned int, unsigned char)':       
.
.
.
\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::onPacket(std::function<void (void*, AsyncClient*, pbuf*)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8onPacketESt8functionIFvPvPS_P4pbufEES1_+0x8): multiple definition of `AsyncClient::onPacket(std::function<void (void*, AsyncClient*, pbuf*)>, void*)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient8onPacketESt8functionIFvPvPS_P4pbufEES1_+0x8): first defined here
c:/users/roland/.platformio/packages/toolchain-xtensa@2.40802.200502/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\libd96\libESPAsyncTCP.a(ESPAsyncTCP.cpp.o): in function `AsyncClient::onTimeout(std::function<void (void*, AsyncClient*, unsigned int)>, void*)':
ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onTimeoutESt8functionIFvPvPS_jEES1_+0x8): multiple definition of `AsyncClient::onTimeout(std::function<void (void*, AsyncClient*, unsigned int)>, void*)'; .pio\build\d1_mini\libda5\libESPAsyncTCP@1.2.0.a(ESPAsyncTCP.cpp.o):ESPAsyncTCP.cpp:(.text._ZN11AsyncClient9onTimeoutESt8functionIFvPvPS_jEES1_+0x8): first defined here
[/spoiler]
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\d1_mini\firmware.elf] Error 1
==================================================================================================================================== [FAILED] Took 69.68 seconds ====================================================================================================================================
Environment Status Duration
------------- -------- ------------
d1_mini FAILED 00:01:09.680

```

---

<div class="post-metadata">

**Author:** ![blazoncek](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/blazoncek/32/1886_2.png) [@blazoncek](https://wled.discourse.group/u/blazoncek)\
**Post date:** [June 16, 2022, 6:20am UTC](https://wled.discourse.group/t/cannot-compile-wled-with-usermod-rotary-encoder-ui-and-usermod-four-line-display/5522/2 "2022-06-16T06:20:37Z")

</div>

Undo changes to source code, copy `platformio_override.ini.sample` into `platformio_override.ini`, create environment for your set-up and add this to your `build_flags`:

```auto
-D USERMOD_FOUR_LINE_DISPLAY
-D USERMOD_ROTARY_ENCODER_UI
-D USE_ALT_DISPlAY

```

There is no need to define pins as those can be adjusted during runtime.

---

<div class="post-metadata">

**Author:** ![fimmezwansch](https://yyz2.discourse-cdn.com/free1/user_avatar/wled.discourse.group/fimmezwansch/32/3273_2.png) [@fimmezwansch](https://wled.discourse.group/u/fimmezwansch)\
**Post date:** [June 17, 2022, 8:09am UTC](https://wled.discourse.group/t/cannot-compile-wled-with-usermod-rotary-encoder-ui-and-usermod-four-line-display/5522/3 "2022-06-17T08:09:51Z")

</div>

Thanks for helping.  
I changed build\_flags in platformio\_override.ini as recommended and defined only  
#define USERMOD\_ROTARY\_ENCODER\_UI  
#define USERMOD\_FOUR\_LINE\_DISPLAY  
in usermods\_list.cpp.  
But, however, still tons of warnings from linker regarding ESPAsyncxxx libs.  
What I have done in addition:  
I changed sector [env] lib\_deps in platformio\_override.ini:  
from fastled/FastLed @ 3.2.2 to version 3.5.0 as in platformio.ini  
ESPAsncTCP @ 1.2.0 to version 1.2.2 (also just like platformio.ini)

Now compiling runs successfully.  
So, my idea about the wrong lib dependencies defined in this usermod was correct.  
Now I’m happy  
And last but not least: Thanks a lot for this great piece of Software called WLED. Currently I have 3 WLED controllers and I use them with a lot of fun!

Kind regards  
Roland
