You are not logged in.

#1 2023-08-07 13:37:56

dauriac
Member
Registered: 2019-01-29
Posts: 55

[SOLVED] problem of compilation of a C++ program using opencv

Hello, I am having trouble compiling openCV for C++ program.
Here is a Makefile

LIBS=-lopencv_core -lopencv_highgui -lopencv_imgcodecs
OPENCV_LIBS = $(shell pkg-config --libs opencv4)

contour:contour.cpp Makefile
	g++ contour.cpp -I /usr/include/opencv4/ $(OPENCV_LIBS) -o contour -g -Wall

seuillage:seuillage.cpp Makefile
	g++ seuillage.cpp -I /usr/include/opencv4/ $(LIBS) -o seuillage -g -Wall

The compilation and execution of seuillage, where I specify by hand the libs, are OK.
But compilation of contour, which use pkg-config, fails:

$ LANG=C make contour
g++ contour.cpp -I /usr/include/opencv4/ -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_cvv -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core  -o contour -g -Wall
/usr/bin/ld: warning: libhdf5.so.310, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_hdf.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libvtkFiltersTexture.so.1, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_viz.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libvtkIOExport.so.1, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_viz.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libvtkIOGeometry.so.1, needed by /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_viz.so, not found (try using -rpath or -rpath-link)
...
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_viz.so: undefined reference to `vtkObject::GetGlobalWarningDisplay()'
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_viz.so: undefined reference to `vtkAlgorithm::Update(int)'
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../lib/libopencv_hdf.so: undefined reference to `H5Dread'
...

I skipped a lot of complains all related to libopencv_viz.so or libopencv_hdf.so.
I checked

$ ll /usr/lib/libopencv_*viz*
-rwxr-xr-x 1 root root 366568 15 juil. 23:28 /usr/lib/libopencv_viz.so.4.8.0
lrwxrwxrwx 1 root root     22 15 juil. 23:28 /usr/lib/libopencv_viz.so.408 -> libopencv_viz.so.4.8.0
lrwxrwxrwx 1 root root     20 15 juil. 23:28 /usr/lib/libopencv_viz.so -> libopencv_viz.so.408

$ ll /usr/lib/libopencv_*hdf*
-rwxr-xr-x 1 root root 59368 15 juil. 23:28 /usr/lib/libopencv_hdf.so.4.8.0
lrwxrwxrwx 1 root root    22 15 juil. 23:28 /usr/lib/libopencv_hdf.so.408 -> libopencv_hdf.so.4.8.0
lrwxrwxrwx 1 root root    20 15 juil. 23:28 /usr/lib/libopencv_hdf.so -> libopencv_hdf.so.408

Any help on that would be very much appreciated

thx

Last edited by dauriac (2023-08-07 14:05:00)

Offline

#2 2023-08-07 14:04:36

dauriac
Member
Registered: 2019-01-29
Posts: 55

Re: [SOLVED] problem of compilation of a C++ program using opencv

Need to do

$ sudo pacman -S hdf5

and

$ sudo pacman -S vtk

thank you to "Hybrid Son Of Oxayotl" for solving the question

Offline

Board footer

Powered by FluxBB