У меня opencv 3.1 (собранный из исходного кода) прекрасно работал в Ubuntu. Однако после того, как я установил python-версию opencv 3.2 из anaconda (conda install -c menpo opencv3 = 3.2.0), у меня появилось следующее предупреждение / ошибки:
/ usr / bin / ld: предупреждение: libjpeg.so.9, необходимо
//home/sss/anaconda3/lib/libtiff.so.5, не найден (попробуйте использовать -rpath или
-rpath-ссылка)//home/sss/anaconda3/lib/libtiff.so.5: неопределенная ссылка на
‘Jpeg_finish_decompress@LIBJPEG_9.0’//home/sss/anaconda3/lib/libtiff.so.5: неопределенная ссылка на
‘Jpeg_set_quality@LIBJPEG_9.0’…
Вот мой файл cmake, за которым я следил в онлайн-источнике.
cmake_minimum_required(VERSION 2.8)
project( test )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package( OpenCV REQUIRED )
message(STATUS "OpenCV library status:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
message(STATUS " library path: ${OpenCV_LIB_DIR}")
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( testcv main.cpp )
target_link_libraries( testcv ${OpenCV_LIBS} )
— Состояние библиотеки OpenCV:
— версия: 3.1.0
— библиотеки:
opencv_xphoto; opencv_xobjdetect; opencv_ximgproc; opencv_xfeatures2d; opencv_tracking; opencv_text; opencv_surface_matching; opencv_structured_light; opencv_stereo; opencv_saliency; opencv_rgbd; opencv_reg; opencv_plot; opencv_optflow; opencv_line_descriptor; opencv_hdf; opencv_fuzzy; opencv_face; opencv_dpm; opencv_dnn; opencv_datasets; opencv_ccalib; opencv_bioinspired; opencv_bgsegm; opencv_aruco; opencv_videostab; opencv_videoio; opencv_video; opencv_superres; opencv_stitching; opencv_shape; opencv_photo; opencv_objdetect; opencv_ml; opencv_imgproc; opencv_imgcodecs; opencv_highgui; opencv_flann; opencv_features2d; opencv_core; opencv_calib3d
— путь включения: / usr / local / include / opencv; / usr / local / include
— Путь к библиотеке: / usr / local / share / OpenCV / 3rdparty / lib
— Конфигурирование сделано
— Генерация завершена
— Файлы сборки были записаны в: / home / sss / Project / OpenCV / Test01 / build
Все библиотеки opencv находятся внутри «/ usr / local / lib», и в папке «/ usr / local / share / OpenCV / 3rdparty / lib» есть только один файл «libippicv.a». И я попытался добавить SET (OpenCV_LIB_DIR «/ usr / local / lib»), ошибка компиляции остается.
мой main.cpp содержит только две строки opencv:
Mat image;
image = imread("lena.jpg",1);
и если я комментарий 2-я строка (imread), Сборка будет успешной.
Кажется, каким-то образом установка OpenCV внутри Anaconda внесла некоторые внешние изменения в системе, но что они? Как я могу вернуть свой opencv обратно на работу?
ОБНОВИТЬ
Я нашел временный способ, перенаправив ссылку:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
Но что было изменено раньше? и как правильно сделать это в cmake?
ОБНОВИТЬ
Он перестает работать снова. Хотя я могу собрать его, после запуска программы он продолжает спрашивать ligjpeg.so.9.
«ошибка при загрузке общих библиотек: libjpeg.so.9: не удается открыть файл общего объекта: нет такого файла или каталога»
Как это решить?
Задача ещё не решена.
Других решений пока нет …