После того, как я успешно перекомпилировал qt5.5.1 и opencv3.1.0, также существует проблема (расстроена!).
Позвольте мне сказать это в datail:
a. На моем компьютере ubunutu при компиляции программ qt с помощью opencv у меня обычно есть два способа:
первый находится в qt IDE, я добавляю две дополнительные строки в .pro
#.pro
CONFIG += link_pkgconfig
PKGCONFIG += opencv
второй находится в терминале, например, в командной строке:
g++ main.cpp -o main `pkg-config opencv --cflags --libs`
Я знаю, почему я могу использовать pkg-config при запуске
echo $PKG_CONFIG_PATH
Я получил:
:/usr/local/opencv-3.1.0/lib/pkgconfig:/usr/local/opencv-3.1.0/lib/pkgconfig:
б. В то время как для кросс-компиляции, как я могу использовать pkg-config?
Я попытался отредактировать /home/lmk/.bashrc, добавив:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/newdisk/optnew/opencv-arm/lib/pkgconfig
export PKG_CONFIG_PATH
а затем откройте новый терминал, запустите:
echo $PKG_CONFIG_PATH
что дает мне:
:/usr/local/opencv-3.1.0/lib/pkgconfig:/usr/local/opencv-3.1.0/lib/pkgconfig:/home/newdisk/optnew/opencv-arm/lib/pkgconfig
Проблема: во-первых, когда в qt IDE и редактировать .pro
#.pro
CONFIG += link_pkgconfig
PKGCONFIG += arm-opencv
результат:
:-1: error: arm-opencv development package not found
Во-вторых, когда в терминале:
arm-linux-g++ `pkg-config arm-opencv --cflags --libs` show.cpp -lpthread -lrt -o show
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libavcodec.so.57, needed by /home/newdisk/optnew/opencv-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libavformat.so.57, needed by /home/newdisk/optnew/opencv-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libavutil.so.55, needed by /home/newdisk/optnew/opencv-arm/li/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libswscale.so.4, needed by /home/newdisk/optnew/opencv-arm/lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libjpeg.so.9, needed by /home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/ld: warning: libpng16.so.16, needed by /home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_set_defaults@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_dict_free@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_alloc_huff_table@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_expand_gray_1_2_4_to_8@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_free_context@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_read_end@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_write_info@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_swap@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_gray_to_rgb@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_open_input@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `sws_getCachedContext@LIBSWSCALE_4'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_write_trailer@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_CreateCompress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_free@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_read_info@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_destroy_read_struct@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_find_stream_info@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avio_open@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_guess_codec@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_set_quality@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avpicture_get_size@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_read_image@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_stdio_src@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_create_read_struct@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_rgb_to_gray@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_filter@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_frame_free@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_log_set_level@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_init_io@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_IHDR@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_get_IHDR@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_free_packet@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_create_write_struct@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_read_update_info@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_seek_frame@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_write_frame@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_longjmp_fn@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avpicture_fill@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_resync_to_restart@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_destroy_compress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_get_tRNS@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_dict_set@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_rescale_q@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_get_riff_video_tags@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_finish_decompress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_write_end@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_get_context_defaults3@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_network_init@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_write_header@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_read_fn@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_bgr@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_get_mov_video_tags@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `sws_freeContext@LIBSWSCALE_4'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_write_scanlines@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_destroy_write_struct@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_frame_alloc@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_read_header@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `sws_getContext@LIBSWSCALE_4'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_CreateDecompress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_finish_compress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_find_encoder@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_start_decompress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_create_info_struct@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_compression_strategy@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_init_packet@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_interlace_handling@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_strip_alpha@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_compression_level@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_reduce@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_malloc@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_encode_video2@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_freep@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avio_close@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_read_frame@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_flush_buffers@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_decode_video2@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_quality_scaling@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_start_compress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_alloc_context@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_error@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_sub_q@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_guess_format@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_simple_progression@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_new_stream@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `sws_scale@LIBSWSCALE_4'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_destroy_decompress@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_std_error@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_write_image@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_find_decoder@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_stdio_dest@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_register_all@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_get_io_ptr@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_write_fn@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_open2@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_packing@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_codec_get_tag@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_palette_to_rgb@PNG16_0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_lockmgr_register@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_default_qtables@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_opt_set@LIBAVUTIL_55'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_calc_output_dimensions@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avcodec_close@LIBAVCODEC_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `av_codec_get_id@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_videoio.so: undefined reference to `avformat_close_input@LIBAVFORMAT_57'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `jpeg_read_scanlines@LIBJPEG_9.0'
/home/newdisk/optnew/opencv-arm/lib/libopencv_imgcodecs.so: undefined reference to `png_set_strip_16@PNG16_0'
collect2: ld returned 1 exit status
Кроме того, кросскомпилятор установлен в
/home/newdisk/optnew/opt/FriendlyARM/toolschain/4.5.1/bin
кросскомпиляция qt установлена в
/home/newdisk/optnew/qt5.5.1
crosscompile opencv установлен в
/home/newdisk/optnew/opencv-arm
3rdparty crosscompile opencv установлен в
/home/newdisk/optnew/opencv-rely
3rdparty opencv:
zlib
jpeg
libpng
yasm
x264
xvidcore
ffmpeg
Как мне установить переменные среды, чтобы pkg-config работал хорошо, чтобы мои программы могли находить каталоги opencv, а также opencv-rely include и lib?