Small tips on how to solve similar problems...
Step 1: Which header file defines the function we are missing ?
Code: Select all
pi@raspberrypi:/ $ cd /opt/vc/include/
pi@raspberrypi:/opt/vc/include $ rgrep vgCreatePath .
./VG/openvg.h:VG_API_CALL VGPath VG_API_ENTRY vgCreatePath(VGint pathFormat,
pi@raspberrypi:/opt/vc/include $
Ok, so "openvg.h" it is..
Step 2: Which library file can be suitable ?
Code: Select all
pi@raspberrypi:/opt/vc/include $ cd /opt/vc/lib/
pi@raspberrypi:/opt/vc/lib $ ls
libbcm_host.so libdebug_sym.so libGLESv1_CM.so libmmal_core.so libvcfiled_check.a libWFC.so
libbrcmEGL.so libdebug_sym_static.a libGLESv2.so libmmal.so libvchiq_arm.so plugins
libbrcmGLESv2.so libdtovl.so libGLESv2_static.a libmmal_util.so libvchostif.a
libbrcmOpenVG.so libEGL.so libkhrn_client.a libmmal_vc_client.so libvcilcs.a
libbrcmWFC.so libEGL_static.a libkhrn_static.a libopenmaxil.so libvcos.so
libcontainers.so libelftoolchain.so libmmal_components.so libOpenVG.so libvcsm.so
hmm.. this libOpenVG looks promising considering the name of the headerfile...
Step 3 : Can we check which functions are in a library ?
Yes we can.
Code: Select all
pi@raspberrypi:/opt/vc/lib $ nm libOpenVG.so | grep vgCreatePath
00008ac0 T vgCreatePath
So I would make sure that "-L/opt/vc/lib -lOpenVG" is part of my compiler options.
Also tip if you are unsure which package a file belongs to:
Code: Select all
pi@raspberrypi:/opt/vc/lib $ dpkg -S libOpenVG.so
libraspberrypi0: /opt/vc/lib/libOpenVG.so
pi@raspberrypi:/opt/vc/lib $ dpkg -l | grep libraspberrypi0
ii libraspberrypi0 1.20170703-1 armhf EGL/GLES/OpenVG/etc. libraries for the Raspberry Pi's VideoCore IV