使用anaconda安装open后出现OpenCV编译错误

2024-06-26 09:32:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的opencv3.1(从源代码构建)在Ubuntu中运行得非常好。但是,在我从anaconda安装了python版本的opencv3.2(conda install-c menpo opencv3=3.2.0)之后,我遇到了以下警告/错误:

/usr/bin/ld: warning: libjpeg.so.9, needed by //home/sss/anaconda3/lib/libtiff.so.5, not found (try using -rpath or -rpath-link)

//home/sss/anaconda3/lib/libtiff.so.5: undefined reference to 'jpeg_finish_decompress@LIBJPEG_9.0'

//home/sss/anaconda3/lib/libtiff.so.5: undefined reference to '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 library status:

-- version: 3.1.0

-- libraries:

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

-- include path: /usr/local/include/opencv;/usr/local/include

-- library path: /usr/local/share/OpenCV/3rdparty/lib

-- Configuring done

-- Generating done

-- Build files have been written to: /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”),编译错误仍然存在。在

我的主.cpp仅包含两条opencv线:

^{pr2}$

如果我注释第二行(imread),构建就会成功。在

似乎在水蟒内部安装opencv对系统进行了一些外部更改,但是它们是什么呢?我怎样才能让我的opencv重新开始工作?在

更新

我通过重定向链接找到了一个临时方法:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu

但之前有什么改变?如何在cmake中正确地完成它?在

更新

它又停止工作了。虽然我可以建立它,但一旦我运行程序,它就一直在问ligjpeg.so.9。在

“加载共享库时出错:libjpeg.so文件.9:无法打开共享对象文件:没有此类文件或目录“

如何解决?在


Tags: 文件pathmessagehomeincludelibusrlocal