Can't verify ILI9341 example code on Nano

I tried to verify the example TFT code graphicstest.ino , gives a large amount of error code. I then tried another example code like blink, it verifies.

You will have to be more specific, several display libraries use that for an example sketch name.
Also, which Nano are you using?

This file? Adafruit_ILI9341/examples/graphicstest/graphicstest.ino at master · adafruit/Adafruit_ILI9341 · GitHub

Show the errors (in a <CODE> block).

This one Adafruit_ILI9341.h

Not sure what a code block is?

I also tried on a Uno and still won’t verify.

Which is?

And a code block is when you paste your code, or error messages, into your reply, select it, and apply the <CODE/> formatting tool from the message toolbar.

/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::invertDisplay(bool)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::begin(unsigned long)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::setRotation(unsigned char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::setAddrWindow(unsigned int, unsigned int, unsigned int, unsigned int)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(signed char, signed char, signed char, signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(signed char, signed char, signed char, signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(SPIClass*, signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(SPIClass*, signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(tftBusWidth, signed char, signed char, signed char, signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::Adafruit_ILI9341(tftBusWidth, signed char, signed char, signed char, signed char, signed char, signed char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::scrollTo(unsigned int)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::setScrollMargins(unsigned int, unsigned int)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o (symbol from plugin): In function `Adafruit_ILI9341::invertDisplay(bool)':
(.text+0x0): multiple definition of `Adafruit_ILI9341::readcommand8(unsigned char, unsigned char)'
/Users/montemeredith/Library/Caches/arduino/sketches/96DD76D4B164459D532C0772CE7C597D/libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
exit status 1

Compilation error: exit status 1
1 Like

That looks wrong. Adafruit_ILI9341.cpp.o and Adafruit_ILI9341 2.cpp.o ? You've got at least 2 files with the same functions in them.

1 Like

I did some searching and found this:
You have two copies of the same source file being compiled, and the linker is yelling about it.

Key lines:

.../libraries/Adafruit_ILI9341/Adafruit_ILI9341.cpp.o
and
.../libraries/Adafruit_ILI9341/Adafruit_ILI9341 2.cpp.o

That "Adafruit_ILI9341 2.cpp" is the giveaway. macOS (and others) will often create a duplicate file with " 2" in the name when you copy things in Finder.

Result: the Arduino build system compiles both .cpp files from that folder, so every function in the class (begin, setRotation, scrollTo, etc.) is defined twice, and the linker stops with “multiple definition” errors.

If you also have two separate Adafruit_ILI9341 libraries installed (for example one in Documents/Arduino/libraries and one in the IDE’s built-in libraries), it is safer to keep only one version. But in your specific error, both objects are coming from the same folder and one of the files clearly has the “ 2” suffix, so deleting that duplicate should fix it.

That was it, removed the second library, now works. Thanks so much!

1 Like

Happy I helped you, have a great new year~