Working sketch now fails to compile with online tools

I have written a number of different sketches and they have been working fine until this past week. It will no longer compile with some of the libraries I have installed. Is there a way to figure out what happened. I have not made changes to my code, so it's not the code - they compiled previously. I thought about moving to the IDE, if I can't get this to work.

These are the libraries I'm using:

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <Encoder.h>
#include <EEPROM.h>

Complie errors are listed below:

./opt/arduino-builder/arduino-builder -compile -core-api-version 10611 -hardware opt/arduino-builder/hardware -hardware ./opt/cores -tools opt/arduino-builder/tools -tools ./opt/tools -built-in-libraries opt/libraries/latest -logger humantags -fqbn arduino:avr:nano:cpu=atmega328old -build-cache /tmp -build-path /tmp/477873176/build -verbose -prefs runtime.tools.avr-gcc.path=./opt/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2 -prefs runtime.tools.avrdude.path=./opt/tools/avrdude/6.3.0-arduino14 -prefs runtime.tools.arduinoOTA.path=./opt/tools/arduinoOTA/1.2.1 -libraries /tmp/477873176/custom -libraries /tmp/477873176/pinned /tmp/477873176/Hammer_V_2_0

Multiple libraries were found for "Wire.h"

Used: /home/ubuntu/opt/cores/arduino/avr/libraries/Wire

Not used: /tmp/477873176/custom/f061a85a-0af9-426f-b56a-74106a4bc966

Multiple libraries were found for "Encoder.h"

Used: /home/ubuntu/opt/libraries/latest/encoder_1_4_1

Not used: /home/ubuntu/opt/libraries/latest/mkrmotorcarrier_1_0_3

Not used: /home/ubuntu/opt/libraries/latest/mindsi_3_0_2

Multiple libraries were found for "EEPROM.h"

Used: /home/ubuntu/opt/cores/arduino/avr/libraries/EEPROM

Not used: /home/ubuntu/opt/libraries/latest/arduino_nvm_0_9_1

Using library encoder_1_4_1 at version 1.4.1 in folder: /home/ubuntu/opt/libraries/latest/encoder_1_4_1

Using library EEPROM at version 2.0 in folder: /home/ubuntu/opt/cores/arduino/avr/libraries/EEPROM

/tmp/477873176/custom/23d18143-9834-4040-af61-9e2fdb4a4d50/I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory

compilation terminated.

exit status 1

childb1:
/tmp/477873176/custom/23d18143-9834-4040-af61-9e2fdb4a4d50/I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory

This error is caused by the LiquidCrystal_I2C library you imported. The author of that library did something really dumb, which causes it to not work with any modern version of the Arduino IDE or the Arduino Web Editor.

If you want to use that library, you need to do this:
Download the library to your computer.
Open I2CIO.cpp in a text editor.
Change line 35 from:

#include "../Wire/Wire.h"

to:

#include <Wire.h>

Save the file.
Zip the modified library.
Import the modified library to the Arduino Web Editor.

Be aware that there are multiple libraries named LiquidCrystal_I2C, and those libraries are generally not interchangeable. You need to use the specific library your code was written for, or else you need to modify the code to work with the library you have installed. To make things more confusing, there are multiple versions of each of those libraries. It looks like you might be using an outdated version of this library:
https://bitbucket.org/fmalpartida/new-liquidcrystal
The latest versions have been modified to fix this bug so you might be able to solve the issue by simply updating to that version, but I can't guarantee that will work.

Thanks for the help. That makes a lot of sense why it won’t compile anymore. What doesn’t make sense to me is one day it worked and the next it didn’t. Does the online editor automatically update the libraries I have installed, since I didn’t make any changes. I’ve moved to the regular IDE and everything seems to work again. I think I will stay away from the online version since it seems to create its own problems.

Brian

The Arduino Web Editor has >1800 3rd party libraries pre-installed. Those libraries are automatically updated every time the author makes a release. You can also have the problem where if a new library file is added with the same filename as your #include directive, you have no control over which one gets used. This can cause a sketch to work (or not work) differently from one moment to the next. The same thing can happen with the regular Arduino IDE but you would be doing that update yourself so there is more of a chance you would say "oh yeah, I updated/installed that library just before the problem started". The regular Arduino IDE also doesn't come with any 3rd party libraries pre-installed so there is much less chance of conflicts.

However, the path in the output you posted shows that the problematic LiquidCrystal_I2C is an imported ("custom") library:

/tmp/477873176/custom/23d18143-9834-4040-af61-9e2fdb4a4d50/I2CIO.cpp:35:26: fatal error: ../Wire/Wire.h: No such file or directory

The Arduino Web Editor should not automatically do anything to the custom libraries. Before this problem occurred, did you ever import a LiquidCrystal_I2C library?