sol-prog/raspberry-pi-opencv

errors while compiling c++ program on raspberry pi 3b+

gpandey108 opened this issue · 2 comments

Hi, I followed all instructions and I am getting following errors:

/usr/bin/ld: warning: libavcodec.so.58, needed by /opt/opencv-4.1.0/lib/libopencv_videoio.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libavformat.so.58, needed by /opt/opencv-4.1.0/lib/libopencv_videoio.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libavutil.so.56, needed by /opt/opencv-4.1.0/lib/libopencv_videoio.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libswscale.so.5, needed by /opt/opencv-4.1.0/lib/libopencv_videoio.so, not found (try using -rpath or -rpath-link)
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_dict_set@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_packet_unref@LIBAVCODEC_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_frame_get_buffer@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_malloc@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_find_encoder@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_freep@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to sws_getContext@LIBSWSCALE_5' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_codec_get_tag@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_close@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to sws_freeContext@LIBSWSCALE_5'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_guess_codec@LIBAVFORMAT_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_sub_q@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avformat_alloc_context@LIBAVFORMAT_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_free@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_seek_frame@LIBAVFORMAT_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avformat_get_mov_video_tags@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_frame_unref@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_lockmgr_register@LIBAVCODEC_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_init_packet@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_dict_free@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_image_get_buffer_size@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avformat_open_input@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avformat_network_init@LIBAVFORMAT_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_flush_buffers@LIBAVCODEC_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_dict_parse_string@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_guess_sample_aspect_ratio@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_get_name@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_decode_video2@LIBAVCODEC_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_guess_format@LIBAVFORMAT_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_register_all@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to sws_getCachedContext@LIBSWSCALE_5' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_write_frame@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avformat_new_stream@LIBAVFORMAT_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_frame_alloc@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_encode_video2@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_find_decoder_by_name@LIBAVCODEC_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_rescale_q@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_core.so: undefined reference to fcntl@GLIBC_2.28'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_log_set_level@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_write_trailer@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_open2@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_image_fill_arrays@LIBAVUTIL_56'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_dict_get@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_dnn.so: undefined reference to powf@GLIBC_2.27'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avcodec_get_context_defaults3@LIBAVCODEC_58' /opt/opencv-4.1.0/lib/libopencv_bioinspired.so: undefined reference to expf@GLIBC_2.27'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to av_frame_free@LIBAVUTIL_56' /opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to avio_open@LIBAVFORMAT_58'
/opt/opencv-4.1.0/lib/libopencv_videoio.so: undefined reference to `av_opt_set@LIBAVUTIL_56'

As a quick solution, this is what I would try:

Alternatively, you can wait a few days for me to test the existing binaries on a freshly install RPi, but this could take some time - working on something else now.

Just tried my instructions on a fresh Raspbian install, I was able to run both the C++ and the Python example without a problem. I suspect you've missed a step. Check again the article or the YouTube video:

https://solarianprogrammer.com/2019/09/17/install-opencv-raspberry-pi-raspbian-cpp-python-development/

https://youtu.be/1paHdhIC9ug