# Pico display - Some functions inform error under C++

**URL:** <https://forums.pimoroni.com/t/pico-display-some-functions-inform-error-under-c/17828>\
**Category:** Support\
**Created:** [September 1, 2021, 11:47pm UTC](https://forums.pimoroni.com/t/pico-display-some-functions-inform-error-under-c/17828 "2021-09-01T23:47:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![RUBEOLA2006](https://avatars.discourse-cdn.com/v4/letter/r/45deac/32.png) [@RUBEOLA2006](https://forums.pimoroni.com/u/RUBEOLA2006)\
**Post date:** [September 1, 2021, 11:47pm UTC](https://forums.pimoroni.com/t/pico-display-some-functions-inform-error-under-c/17828/1 "2021-09-01T23:47:09Z")

</div>

Hello,  
I was able to compile all the PIMORONI demos in the PC, without any problem. I have the pico display.

Now, I tried to add some information to the “pico Display” with C++; but if I used some functions, I got errors inside the pico\_graphics.cpp code. I used as basic code the BLINK.CPP (it works) and I added code from **demo.cpp**.

For example if I call the function **pico\_display.clear();** the error is:  
In file: pico\_graphics.cpp , line 70 Rect clipped = r.intersection(clip);  
the compile/link error is:  
undefined reference to `pimoroni::Rect::intersection(pimoroni::Rect const&) const link

For example if I call the function **pico\_display.triangle(Point(50, 50), Point(130, 80), Point(80, 110));**" the compile error is:  
In file: pico\_graphics.cpp , line 182 -\>triangle\_bounds = clip.intersection(triangle\_bounds);\<-  
the compile/link error is:  
undefined reference to `pimoroni::Rect::intersection(pimoroni::Rect const&) const’link

For example if I call the function **pico\_display.line(Point(50, 50), Point(120, 80));**"  
In file: pico\_graphics.cpp , line 47 → if(!clip.contains(p)) return; ←   
the compile /link error is:  
undefined reference to `pimoroni::Rect::contains(pimoroni::Point const&) const’link

Some functions works , for example:  
using namespace pimoroni;  
uint16\_t buffer[PicoDisplay::WIDTH \* PicoDisplay::HEIGHT];  
PicoDisplay pico\_display(buffer);  
std::vector shapes;  
pico\_display.init();  
pico\_display.set\_backlight(100);  
pico\_display.set\_pen (0,0,255) ;  
pico\_display.set\_led(0, 0 ,255 );  
pico\_display.update();

I used the following folders driver/st7789/ ; libraries/pico\_display/ ; libraries/pico\_graphics/ and the file blink.cpp (from Pi Pico demo) with some lines of PIMORONI demo for Pico Display.

Please, anybody has a suggestion about which is the problem or the missing file ?.

Thanks in advance.  
Carlos

---

<div class="post-metadata">

**Author:** ![ahnlak](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/ahnlak/32/5610_2.png) [@ahnlak](https://forums.pimoroni.com/u/ahnlak)\
**Post date:** [September 2, 2021, 9:49am UTC](https://forums.pimoroni.com/t/pico-display-some-functions-inform-error-under-c/17828/2 "2021-09-02T09:49:40Z")

</div>

The `Rect::intersection` stuff comes from `pico_graphics`, which should be built right into the `pico_display` library - how are you building this, what’s your `CMakeList.txt` like?

---

<div class="post-metadata">

**Author:** ![RUBEOLA2006](https://avatars.discourse-cdn.com/v4/letter/r/45deac/32.png) [@RUBEOLA2006](https://forums.pimoroni.com/u/RUBEOLA2006)\
**Post date:** [September 2, 2021, 9:52pm UTC](https://forums.pimoroni.com/t/pico-display-some-functions-inform-error-under-c/17828/3 "2021-09-02T21:52:55Z")

</div>

Hello.  
Thanks for your help.

The project has only the blink.cpp and CMakeLists.txt files.

The files have the following organization:

blink.cpp

(From GITHUB))  
pimoroni-pico–+  
-------------------- common  
-------------------- drivers --+  
-------------------- -------------- st7789  
-------------------- libraries --+  
-------------------- --------------pico\_display  
-------------------- --------------pico\_graphics

My CMakeLists.txt is:

cmake\_minimum\_required(VERSION 3.20)  
include($ENV{PICO\_SDK\_PATH}/pico\_sdk\_init.cmake)  
set(SHARED\_INCLUDES  
F:/PICO\_COD/cmdisplay07/pimoroni-pico  
C:/VSARM/Pico/pico-sdk/src/rp2\_common/hardware\_spi/include  
C:/VSARM/Pico/pico-sdk/src/rp2\_common/hardware\_gpio/include  
F:/PICO\_COD/cmdisplay07/pimoroni-pico/libraries/pico\_graphics  
F:/PICO\_COD/cmdisplay07/pimoroni-pico/libraries/pico\_display  
F:/PICO\_COD/cmdisplay07/pimoroni-pico/drivers/st7789  
)  
include\_directories(${SHARED\_INCLUDES})

project(blink C CXX ASM)

# VERSIONES

set(CMAKE\_C\_STANDARD 11)  
set(CMAKE\_CXX\_STANDARD 17)

# Inicializar el SDK

pico\_sdk\_init()

add\_executable (blink  
blink.cpp  
)  
pico\_add\_extra\_outputs(${PROJECT\_NAME})

target\_link\_libraries(  
${PROJECT\_NAME}  
pico\_stdlib  
hardware\_spi  
hardware\_pwm  
hardware\_dma  
) // Here is missing one library !!

Thanks for your help.

---

<div class="post-metadata">

**Author:** ![RUBEOLA2006](https://avatars.discourse-cdn.com/v4/letter/r/45deac/32.png) [@RUBEOLA2006](https://forums.pimoroni.com/u/RUBEOLA2006)\
**Post date:** [September 3, 2021, 2:18am UTC](https://forums.pimoroni.com/t/pico-display-some-functions-inform-error-under-c/17828/4 "2021-09-03T02:18:48Z")

</div>

Hello ahnlak,  
Thanks for your help.

The problem was into the **CMakeList.txt** file.

The right line for the LINK is:

target\_link\_libraries(${PROJECT\_NAME} pico\_stdlib hardware\_spi hardware\_pwm hardware\_dma **pico\_display** )

Best Regards  
Carlos
