[Solved] Arduino Create Editor does not use custom library

Hi, I'm trying to use a custom library, which I already successfully imported into the editor. But when I am trying to verify the sketch I get following notice:

arduino-builder/arduino-builder -compile -core-api-version 10611 -build-path /tmp/520442586 -hardware arduino-builder/hardware -hardware arduino-builder/packages/cores -tools arduino-builder/tools -tools arduino-builder/packages/tools -built-in-libraries arduino-builder/latest -libraries /tmp/754199975/pinned -libraries /tmp/754199975/custom -fqbn arduino:avr:mega:cpu=atmega2560 -build-cache /tmp -verbose=false /tmp/754199975/BlinkingCursor

Multiple libraries were found for "LiquidCrystal_I2C.h"

Used: /home/admin/builder/arduino-builder/latest/LiquidCrystal I2C-1.1.2

Not used: /tmp/754199975/custom/Arduino-LiquidCrystal-I2C-library-master

Not used: /home/admin/builder/arduino-builder/latest/jm_LiquidCrystal_I2C-1.0.0

/tmp/754199975/BlinkingCursor/BlinkingCursor.ino: In function 'void setup()':

/tmp/754199975/BlinkingCursor/BlinkingCursor.ino:10:12: error: no matching function for call to 'LiquidCrystal_I2C::begin()'

lcd.begin();

^

/tmp/754199975/BlinkingCursor/BlinkingCursor.ino:10:12: note: candidate is:

In file included from /tmp/754199975/BlinkingCursor/BlinkingCursor.ino:2:0:

/home/admin/builder/arduino-builder/latest/LiquidCrystal I2C-1.1.2/LiquidCrystal_I2C.h:58:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

^

/home/admin/builder/arduino-builder/latest/LiquidCrystal I2C-1.1.2/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided

exit status 1

highlighted is the custom Library that would make the sketch work

What do I have to do to actually make the custom library work. The error message you see above appears when I try to verify an example out of the library.

Within the official guideline of "how to use libraries in ArduinoCreate" it says: first priority is custom library content, then Favorite Libraries, lastly public libraries.

Looking forward to make that work.

Thanks in advance, Ben

@Benjamin7785 here what you could try: - delete the custom library Arduino-LiquidCrystal-I2C-library-master - rename you library removing '-master' and making sure the folder name is the same as the .h main file - re-import - run your sketch

I supposed you downloaded the library from Github, which adds the -master part to the name, this breaks the library convention in the Arduino IDE.

Let us know if this works!

Also try to avoid recursive directories. Sometimes you may need to actually strip the lout folder from the zip

eg. a folder may be called "xyz_ master" and then contain another folder inside that is called "xyz" with no other content in the "xyz_master" folder.

Removing master would leave you with a folder called "xyz" inside a folder called "xyz"

@00alis : yes I got the library from Github. I will follow your suggestions and reply as soon as possible. But I wonder what kind of relation there is between source code and name of the custom directory?

@ballscrewbob : In fact you cannot upload libraries as long as you have recursive directories, as far as I'm aware of. However, this actually happend to me as I did unintended zipping of a directory.

I will get back with my results soon.

Thank you @00alis!

renaming the folder solved the problem.

obviously, the folder name of the library needs to be the same name as the *.h file.

:slight_smile:

The reason that it's important for the folder name to match the filename of the header that you include in this case is that there are multiple libraries that have a file of the same name. The Arduino IDE gives preference to the library that has a folder name matching the included filename. In other cases where there are no files with duplicate names the library folder having a different name will not cause any problems.