背景:
我希望同时使用卡菲和位数,这样就可以在数字框架内或外部使用Caffe。
但是,对于特定的项目,我要求Caffe使用OpenCV 3,而不是默认安装数字的OpenCV 2.4。此项目使用数字外部的Caffe,而不使用任何数字框架。
似乎通过安装数字,我的OpenCV 3安装被OpenCV 2.4“破坏”了,这在我最初的Caffe安装中造成了问题。
为了使事情更清楚,下面列出了我已经采取的步骤。
来自一个新的Ubuntu 14.04安装:
/usr/local
Makefile.config设置为使用OpenCV 3
编译命令:
g++ classification.cpp -o分类-I/home/josh/software/caffe/include/ -L/home/乔什/软件/caffe/build/lib/ -lcaffe -I/usr/local/cuda/include -L/usr/ local/cuda/lib 64 -lcuda -lcudart -lcublas -lcurand -I/home/josh/software/cudnn/include/ L/home//software/cudnn/lib64/ -lcudnn -L/usr/x86_64-linux-gnu/ -lglog -L/usr/本地/lib -lboost_system -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -DUSE_OPENCV
错误消息:
/usr/bin/ ld : /home/josh/software/caffe/build/lib//libcaffe.so,需要的警告: libopencv_core.so.3.0可能与libopencv_core.so.2.4 /usr/bin/ld: /tmp/ccHaWcOl.o冲突:未定义的对符号'_ZN2cv6String10deallocateEv‘//usr/local/lib/libopencv_core.so.3.0:错误添加符号: DSO缺失命令行collect2: collect2:ld返回一个退出状态
问题:
发布于 2015-12-10 20:27:13
安装OpenCV库时,共享库将像libopencv_core.so.2.4.8一样存储,其中2.4.8是OpenCV的版本号。libopencv_core.so文件通常链接到系统中安装的最后一个版本的OpenCV。
因此,虽然libopencv_core.so最初被链接到libopencv_core.so.3.0,但当您安装旧版本时,该链接被更新为链接到旧版本。
解决办法是在caffe中专门调用最新的OpenCV库。要做到这一点,您必须修改caffe中的Makefile。将所有出现的opencv_*替换为:libopencv_*.so.3.0
发布于 2017-04-01 03:54:32
如果您安装Caffe,使用opencv3.0并不是一个好的理想。咖啡和它不太兼容。如果您坚持使用它,请使用命令sudo apt-get autoremove libopencv-dev删除2.4版本。造成此版本冲突的原因是您安装了libopencv-dev (默认版本为2.4),并在3.0中安装了opencv。因此,删除它,然后编译caffe。
https://stackoverflow.com/questions/34125052
复制相似问题