如何解决在 ubuntu 16.04 上构建 caffe 的依赖关系

如何解决在 ubuntu 16.04 上构建 caffe 的依赖关系

我正在尝试从 ubuntu 16.04 上的 git checkout 构建 caffe。

如果找到了 gcc5 解决方法并解决了 hf5 问题但现在陷入困境。

我已经解决了大部分依赖关系,但仍被这些依赖关系所困扰。

/usr/bin/ld: warning: libcudart.so.6.5, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcublas.so.6.5, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcurand.so.6.5, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_system.so.1.55.0, needed b
/usr/lib/libcaffe.so, may conflict with libboost_system.so.1.58.0
/usr/bin/ld: warning: libboost_thread.so.1.55.0, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libboost_python-py27.so.1.55.0, needed by
/usr/lib/libcaffe.so, not found (try using -rpath or -rpath-link)

ubuntu 16.04 附带 boost 1.58 并且在 repo 中没有 1.55 包可用,有人知道我可以在哪里找到它们以及如何安装它们而不破坏其他 boost 包吗?

我也不确定从哪里获取 libcu* 文件

有没有人想过如何解决这个问题,或者有没有人计划制作一个可以缓解这种痛苦的咖啡包?

编辑:我正在使用的机器是戴尔 precison m3800,配有 NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1),采用 optimus 和英特尔 4600

编辑:错误消息建议-rpath关于如何使用它有什么建议吗?

编辑:我今天早上(2016 年 5 月 18 日)刚刚对我的 caffe 源执行了 git pull,看来 caffe 现在已经升级到 boost libs 和 7.5 cuda libs 的 1.58 版本,因此正在使用安装在我系统上的那些,但这还不稳定,编译失败,并显示警告和错误页面。希望这是修复的开始...

更新:

使用 user.dz 的建议来使用我所做的捆绑的 cuda 工具

apt-get install nvidia-cuda-toolkit 

这很有效,让我度过了难关!谢谢@user.dz :)

构建 caffe 仍然有大量的编译错误,这些错误可以通过谷歌搜索并找到有解决方法的帖子来修复,太多了,无法列出。

这使我可以成功编译 caffe(带有来自 boost 的许多警告),所以我认为这意味着这个问题得到了回答,谢谢大家,特别是 user.dz!

作为旁白:

我现在无法尝试构建 pycaffe,它抱怨libboost_python3未找到,我已安装软件包,但似乎没有 .so 版本,只有 .a 版本,由于不支持的重定位错误,导致构建失败。有什么想法吗?我将就此提出一个新问题并发布链接

pycaffe 现已构建,并使用一个厚脸皮的符号链接修复它:)

sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/lib/x86_64-linux-gnu/libboost_python3.so

答案1

  1. 它似乎是一个绝对的包,为什么它没有在搜索中列出packages.ubuntu.com可以从以下地址获取:

    http://archive.ubuntu.com/ubuntu/pool/multiverse/n/nvidia-cuda-toolkit/

    在其他情况下,您也可以寻找旧版本的存储库:

    http://old-releases.ubuntu.com/ubuntu/pool/universe/n/nvidia-cuda-toolkit/

  2. 提取它们并将所需的共享对象(库)复制到/usr/local/lib/

您可以对 boost 库执行相同的操作。这些库都有版本控制,因此您可以将许多库放在同一个系统中。轻松安装的唯一限制是打包,他们将它们放在同一个名称下。

如果您认为需要在同一个系统中拥有多个版本并且应用范围广泛,请为其提交错误报告。

答案2

我认为 Xenial 中 libcudart 的库版本是7.5。您可以尝试以这些为目标吗(libcublas 和 libcurand 也一样)?

Boost 已升级至版本.58。您可能还需要安装libboost-system-devlibbost-system不是启动开发人员,请接受这个建议)。libboost-thread 和 libboost-python 也一样。

很有可能他们没有将软件包改为与 16.04 相匹配,而是以看起来拥有这些软件包版本的 trusty 为目标。

相关内容