Ubuntu16安装caffe踩坑与解决:DSO missing from command line

需积分: 12 0 下载量 192 浏览量 更新于2024-09-04 1 收藏 2KB TXT 举报
"个人在安装caffe的过程中遇到的问题和解决方案,主要是在Ubuntu 16上,环境为anaconda3和cuda10.1,涉及到opencv的安装以及与caffe编译的冲突" 在安装Caffe时,作者遇到了从Ubuntu 14升级到16后的一系列问题。Ubuntu版本的升级可能会导致软件依赖和库的不兼容,这可能是作者安装过程中的第一个挑战。作者尝试了在Ubuntu 16上安装opencv2.4.9和opencv3.1,但都未能通过编译方式成功安装。对于OpenCV 3.1及以上版本,构建过程有所变化,需要包括opencv-contrib模块。 安装opencv时,作者发现需要同时安装opencv和opencv-contrib两个文件。在参考了相关教程后,作者完成了opencv的安装。然而,当继续按照Caffe的官方指南安装所需的库时,遇到了一个编译错误。错误信息指出在`make all`时有DSO(动态链接库)缺失,具体表现为`libopencv_core.so.3.3`与系统中已存在的`libopencv_core.so.2.4`之间可能存在冲突。 这个错误是由于链接器找不到特定符号`_ZN2cv6String10deallocateEv`,这通常意味着编译时使用的库版本与运行时链接的库版本不匹配。在这种情况下,解决办法是在Caffe的根目录下的Makefile.config文件中添加适当的库路径和包含目录。作者将`INCLUDE_DIRS`和`LIBRARY_DIRS`设置为Python的include和lib路径,以及 `/usr/local/lib`、`/usr/lib` 和 `usr/local/lib/x86_64-linux-gnu`,这样可以确保链接器能找到正确的库。 这个解决方案避免了创建软链接到旧版本库的需要,软链接有时会引发其他潜在的问题。通过修改Makefile.config,作者成功解决了编译错误,并能继续进行Caffe的安装过程。 总结来说,安装Caffe时应注意操作系统版本与软件的兼容性,特别是在处理依赖库如opencv时。遇到编译错误时,应仔细检查库版本和编译配置,确保所有依赖项正确无误。此外,保持环境的整洁和一致性,避免混合不同版本的库,可以减少类似问题的发生。