So i already install OpenCV library two years ago on virtualenviroment for python and it work well using this step. Now i create some image processing program in C languange, but everytime i try to compile, it always couldn't find the OpenCV library.
Package checking always able to detect OpenCV $ pkg-config --modversion opencv 3.1.0 But if i run my make file
Below my make file, linux.sh
#!/bin/sh # if [ $# -gt 0 ] ; then # base=`basename $1` # echo "compiling $base" # g++ -ggdb `pkg-config opencv --cflags --libs` $1 -o $base # if [ $# -gt 0 ] ; then # base=`basename $1 .c` # echo "compiling $base" # gcc -ggdb `pkg-config opencv --cflags --libs` $base.c -o $base if [ $# -gt 0 ] ; then base=`basename $1 .cpp` echo "compiling $base" g++ -ggdb `pkg-config opencv --cflags --libs` $base.cpp -o $base else for i in *.c; do echo "compiling $i" gcc -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv` -lm; done for i in *.cpp; do echo "compiling $i" g++ -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs opencv` -lm; done fi It always return this
compiling main.c /usr/bin/ld: cannot find -lopencv_aruco /usr/bin/ld: cannot find -lopencv_bgsegm /usr/bin/ld: cannot find -lopencv_bioinspired /usr/bin/ld: cannot find -lopencv_ccalib /usr/bin/ld: cannot find -lopencv_dnn /usr/bin/ld: cannot find -lopencv_dpm /usr/bin/ld: cannot find -lopencv_fuzzy /usr/bin/ld: cannot find -lopencv_line_descriptor /usr/bin/ld: cannot find -lopencv_optflow /usr/bin/ld: cannot find -lopencv_plot /usr/bin/ld: cannot find -lopencv_reg /usr/bin/ld: cannot find -lopencv_saliency /usr/bin/ld: cannot find -lopencv_stereo /usr/bin/ld: cannot find -lopencv_structured_light /usr/bin/ld: cannot find -lopencv_rgbd /usr/bin/ld: cannot find -lopencv_surface_matching /usr/bin/ld: cannot find -lopencv_tracking /usr/bin/ld: cannot find -lopencv_datasets /usr/bin/ld: cannot find -lopencv_text /usr/bin/ld: cannot find -lopencv_face /usr/bin/ld: cannot find -lopencv_xfeatures2d /usr/bin/ld: cannot find -lopencv_shape /usr/bin/ld: cannot find -lopencv_ximgproc /usr/bin/ld: cannot find -lopencv_xobjdetect /usr/bin/ld: cannot find -lopencv_xphoto /usr/bin/ld: cannot find -lopencv_videoio /usr/bin/ld: cannot find -lopencv_imgcodecs collect2: error: ld returned 1 exit status I search where my OpenCV library located, and i found it in /usr/local/lib : It contain everything that needed such as libopencv_aruco.so.3.1, libopencv_bgsegm.so.3.1 and etc.
I have try several solution online but it still not working. So, how could i solve this problem without ruining my entire system that still working fine?
Update #1 Result from pkg-config --libs opencv
-L/usr/local/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn -lopencv_dpm -lopencv_fuzzy -lopencv_line_descriptor -lopencv_optflow -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lippicv -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core I try one solution from again here :
Step i did :
sudo gedit /etc/ld.so.conf.d/Robotika.conf And in that, i type this
/usr/local/lib After that
sudo ldconfig OK BASED on comment, this solution is not for my case
Update #2 When i run
$ namei -l /usr/local/lib/libopencv_aruco.so f: /usr/local/lib/libopencv_aruco.so drwxr-xr-x root root / drwxr-xr-x root root usr drwxr-xr-x root root local drwxr-xr-x root root lib libopencv_aruco.so - No such file or directory library not detected, but if i run :
$ namei -l /usr/local/lib/libopencv_aruco.so.3.1 f: /usr/local/lib/libopencv_aruco.so.3.1 drwxr-xr-x root root / drwxr-xr-x root root usr drwxr-xr-x root root local drwxr-xr-x root root lib lrwxrwxrwx root root libopencv_aruco.so.3.1 -> libopencv_aruco.so.3.1.0 -rw-r--r-- root root libopencv_aruco.so.3.1.0 it detected.
9 Reset to default