The arduino IDE can't seem to find the wire.h file when i'm using the new liquid crystal library. Does anyone know how to solve this? here is the code i'm using and the error message:

/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE 
#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/ /*-----( Declare objects )-----*/ // set the LCD address to 0x27 for a 16 chars 2 line display // A FEW use address 0x3F // Set the pins on the I2C chip used for LCD connections: //                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

/*-----( Declare Variables )-----*/ //NONE

void setup()   /*----( SETUP: RUNS ONCE )----*/ {   Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ------- Quick 3 blinks of backlight  -------------   for(int i = 0; i< 3; i++)   {
    delay(250);   }   lcd.backlight(); // finish with backlight on  

//-------- Write characters on the display ------------------ // NOTE: Cursor Position: (CHAR, LINE) start at 0     lcd.setCursor(0,0); //Start at character 4 on line 0   lcd.print("Hello, world!");   delay(1000);   lcd.setCursor(0,1);   lcd.print("HI!YourDuino.com");   delay(8000);  

// Wait and then tell user they can start the Serial Monitor and type in characters to // Display. (Set Serial Monitor option to "No Line Ending")   lcd.clear();   lcd.setCursor(0,0); //Start at character 0 on line 0   lcd.print("Use Serial Mon");   lcd.setCursor(0,1);   lcd.print("Type to display");  

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/ {   {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      // clear the screen
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
    }   }

}/* --(end main loop )-- */

Here is the compiler output

Arduino: 1.6.7 (Windows 10), Board: "Arduino Nano, ATmega328"

C:\Users\martin\Documents\Arduino\libraries\LiquidCrystal\I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory

#include <../Wire/Wire.h>


compilation terminated.

exit status 1 Error compiling.

This report would have more information with "Show verbose output during compilation" enabled in File > Preferences.


The liquid crystal library has to be installed in the same folder as the wire library:

libraries/Wire/Wire.h (etc)
libraries/LiquidCrystal/LiquidCrystal_I2C.h (etc)

There is a hard-coded path in the liquid crystal library pointing to the wire library that is relative to where the liquid crystal library is, which is done to get around the problem that the Arduino library doesn't recurse libraries. It's not actually needed since including the Wire library in the IDE is enough to tell it where to find it for the liquid crystal library, so I don't really know why they did it that way.

  • Thanks! i copied the whole Wire folder from C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries and put it in the documents/arduino/libraries folder and it worked! Is there any cons with solving it this way?
    – Pownyan
    Apr 1 '16 at 10:38
  • An upgrade to the IDE or Arduino core could leave your two copies of the wire library out of step. Just so long as you keep your copy up to date it should be fine.
    – Majenko
    Apr 1 '16 at 10:51

Don't know if you could resolve the problem. I am using PlatformIo and import the LiquidCrystal library (i used li. Doing on this way i got error finding Wire.h library but appending this line on platformio.ini file: (after framework = arduino)

lib_deps = Wire
  • He is using Arduino IDE, not PlatformIO IDE.
    – gre_gor
    Jan 22 '19 at 4:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.