Fix “Multiple libraries were found for …” in Arduino IDE
Two installed libraries provide the same header. Usually harmless, but if the wrong one is used, remove the duplicate.
Community draft — report a mistake
What you see
Multiple libraries were found for "LiquidCrystal_I2C.h"
Used: C:\Users\you\Documents\Arduino\libraries\LiquidCrystal_I2C
Not used: C:\Users\you\Documents\Arduino\libraries\LiquidCrystal_I2C-masterMultiple libraries were found for "LiquidCrystal_I2C.h" Used: C:\Users\you\Documents\Arduino\libraries\LiquidCrystal_I2C Not used: C:\Users\you\Documents\Arduino\libraries\LiquidCrystal_I2C-master
Arduino searches several folders for libraries. When two of them contain the same header, it picks one and tells you which. Remove the copy you do not want so the build always uses the right one.
Quick fix — try in order
- 1
Read which one was used
The “Used:” line shows the library the compiler picked. If your sketch compiles and works, you can leave it.
- 2
Delete the duplicate you do not need
Close the IDE and remove the extra folder from Documents/Arduino/libraries (often a “-master” copy from a ZIP download).
- 3
Prefer Library Manager installs
They are versioned and update cleanly; manual ZIP copies are what usually create duplicates.
- 4
For WiFi.h: select the correct board
An installed “WiFi” library for the old Arduino WiFi shield conflicts with the ESP32 core’s WiFi. Remove the shield library if you do not use it.
Why it happens
Is it an error?
No — it is a message. It becomes a problem only when the wrong library is chosen and the code then fails to compile or behaves differently.
Same header, different API
Two “LiquidCrystal I2C” forks may both provide LiquidCrystal_I2C.h with different function names, causing follow-on errors.
Core vs user library
A user-installed copy of a library that also ships with the board core (Servo, SD, WiFi) can shadow the core version.
Did this fix it?
Thanks — that helps us keep this page right.