Compiling error a code which works fine few month ago

Hey @ all,

i work now already more than one year with platformio and i really like it.
But i try to comile a code which i made few month ago and it works fine with wemos d1 mini.

Now i try to compile the same code again to upload it again to another board and i have all the the time the same error message. Doesnt matter which computer i try…

I hope somebody can help me here…

the erroer message:

c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::write(unsigned char)':
WiFiClient.cpp:(.text._ZN10WiFiClient5writeEh+0x0): multiple definition of `WiFiClient::write(unsigned char)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient5writeEh+0x0): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::peek()':
WiFiClient.cpp:(.text._ZN10WiFiClient4peekEv+0x0): multiple definition of `WiFiClient::peek()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient4peekEv+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::connect(char const*, unsigned short)':
WiFiClient.cpp:(.text._ZN10WiFiClient7connectEPKct+0x10): multiple definition of `WiFiClient::connect(char const*, unsigned short)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient7connectEPKct+0x10): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::available()':
WiFiClient.cpp:(.text._ZN10WiFiClient9availableEv+0x4): multiple definition of `WiFiClient::available()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient9availableEv+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::operator bool()':
WiFiClient.cpp:(.text._ZN10WiFiClientcvbEv+0x0): multiple definition of `WiFiClient::operator bool()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClientcvbEv+0x0): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::connected()':
WiFiClient.cpp:(.text._ZN10WiFiClient9connectedEv+0x4): multiple definition of `WiFiClient::connected()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient9connectedEv+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::write(unsigned char const*, unsigned int)':
WiFiClient.cpp:(.text._ZN10WiFiClient5writeEPKhj+0xc): multiple definition of `WiFiClient::write(unsigned char const*, unsigned int)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient5writeEPKhj+0x8): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::read()':
WiFiClient.cpp:(.text._ZN10WiFiClient4readEv+0x4): multiple definition of `WiFiClient::read()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient4readEv+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::read(unsigned char*, unsigned int)':WiFiClient.cpp:(.text._ZN10WiFiClient4readEPhj+0x8): multiple definition of `WiFiClient::read(unsigned char*, unsigned int)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient4readEPhj+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::WiFiClient()':
WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0xc): multiple definition of `WiFiClient::WiFiClient()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::WiFiClient()':
WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0xc): multiple definition of `WiFiClient::WiFiClient()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClientC2Ev+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::connect(IPAddress, unsigned short)':WiFiClient.cpp:(.text._ZN10WiFiClient7connectE9IPAddresst+0x68): multiple definition of `WiFiClient::connect(IPAddress, unsigned short)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient7connectE9IPAddresst+0x28): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiClient.cpp.o): in function `WiFiClient::status()':
WiFiClient.cpp:(.text._ZN10WiFiClient6statusEv+0x4): multiple definition of `WiFiClient::status()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiClient.cpp.o):WiFiClient.cpp:(.text._ZN10WiFiClient6statusEv+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::write(unsigned char)':
WiFiServer.cpp:(.text._ZN10WiFiServer5writeEh+0x0): multiple definition of `WiFiServer::write(unsigned char)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer5writeEh+0x0): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::write(unsigned char const*, unsigned int)':
WiFiServer.cpp:(.text._ZN10WiFiServer5writeEPKhj+0x0): multiple definition of `WiFiServer::write(unsigned char const*, unsigned int)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer5writeEPKhj+0x10): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::WiFiServer(unsigned short)':        
WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0xc): multiple definition of `WiFiServer::WiFiServer(unsigned short)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::WiFiServer(unsigned short)':        
WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0xc): multiple definition of `WiFiServer::WiFiServer(unsigned short)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServerC2Et+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::status()':
WiFiServer.cpp:(.text._ZN10WiFiServer6statusEv+0x0): multiple definition of `WiFiServer::status()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer6statusEv+0x4): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::begin()':
WiFiServer.cpp:(.text._ZN10WiFiServer5beginEv+0x4): multiple definition of `WiFiServer::begin()'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer5beginEv+0x10): first defined here
c:/users/dell/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: .pio\build\d1_mini\lib7af\libESP8266WiFi.a(WiFiServer.cpp.o): in function `WiFiServer::available(unsigned char*)':
WiFiServer.cpp:(.text._ZN10WiFiServer9availableEPh+0x20): multiple definition of `WiFiServer::available(unsigned char*)'; .pio\build\d1_mini\lib63f\libWiFi_ID870.a(WiFiServer.cpp.o):WiFiServer.cpp:(.text._ZN10WiFiServer9availableEPh+0x20): first defined 
here
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\d1_mini\firmware.elf] Error 1

There are two different and conflicting libraries installed / compiled into the project, most likely WiFi.h and ESP8266WiFi.h.

Show us the dependency graph which is output at the start of the compilation please.

2 Likes

Hey Max,

thank you for your fast reply.

Do You mean this part?

> Executing task in folder ESP-01s_GARAGENTOR_OEFFNER: C:\Users\Dell\.platformio\penv\Scripts\platformio.exe run <
Processing d1_mini (platform: espressif8266; board: d1_mini; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini.html
PLATFORM: Espressif 8266 2.6.2 > WeMos D1 R2 and mini
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif8266 3.20704.0 (2.7.4)
 - tool-esptool 1.413.0 (4.13)
 - tool-esptoolpy 1.20800.0 (2.8.0)
 - toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 36 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ESP8266WebServer> 1.0
|   |-- <WiFi> 1.2.7      
|   |   |-- <SPI> 1.0     
|   |-- <ESP8266WiFi> 1.0 
|-- <ESP8266WiFi> 1.0     
|-- <WiFi> 1.2.7
|   |-- <SPI> 1.0
Building in release mode
Linking .pio\build\d1_mini\firmware.elf

i uninstall the WIFI.h by Arduino and now it works :blush:

Many Thanks…

Yes this indeed doesn’t look good. Don’t know why it’s attempting to include two WiFi libraries without seeing the code though.

You removed it in the framework folder (C:\Users\<user>\.platformio\packages\framework-arduinoespressif8266)? Uhm deletion of something in there usually isn’t good… If you have modified something in there, you can delete the whole framework-arduinoespressif8266 folder an PIO will redownload it.

Maybe as a proper fix, try setting the library dependency finder mode to a higher level in the platformio.ini so that it may detect what libraries are actually used… (docs)

lib_ldf_mode = chain+
1 Like

Hey Max,

I unistall the WIFIh library via the library Manager.

Okay i will try your solution and i will give a Feedback…

1 Like

If you installed it via the Library Manager in the first place - that is likely your problem. The ‘Install’ function in the Library Manager unfortunately installs to global library storage, which can result in incompatible libraries being pulled into your project - like the WiFi library. :frowning: